List<Integer> list=new ArrayList<>()

List<Integer> list = new ArrayList<>(); 是 Java 中创建泛型列表的常见语法,下面详细解释其含义和关键点:

1. 代码拆解

sql 复制代码
List<Integer> list = new ArrayList<>();
  • List<Integer>:

    • 接口类型 :List 是 Java 集合框架中的接口,定义了有序、可重复的集合操作(如添加、删除、索引访问等)。
    • 泛型参数 <Integer> :指定列表中只能存储 Integer 类型的对象(即整数的包装类)。使用泛型后,编译器会自动检查类型安全,避免运行时的 ClassCastException。
  • new ArrayList<>():

    • 实现类 :ArrayList 是 List 接口的动态数组实现,支持自动扩容。
    • 菱形语法 <>:Java 7 引入的语法糖,允许省略右侧的泛型参数(编译器会根据左侧类型自动推断)。

2. 关键点说明

2.1 泛型的作用
  • 类型安全 :

    java 复制代码
    list.add(10);     // 合法:自动装箱 int → Integer
    list.add("hello"); // 编译错误:类型不匹配

    无需手动类型转换:

    java 复制代码
    Integer num = list.get(0); // 直接获取 Integer 类型,无需强制转换
    2.2 动态数组特性
  • ArrayList 会自动扩容,初始容量为 10,超过容量时会创建更大的数组并复制元素。

  • 缺点:插入 / 删除操作效率较低(需移动元素),适合随机访问场景。

2.3 多态的应用
  • 面向接口编程 :变量声明为 List 接口类型,而非具体实现类 ArrayList,便于后续更换实现(如改用 LinkedList)。

    java 复制代码
    // 可无缝切换为 LinkedList
    List<Integer> list = new LinkedList<>();

    3. 常见操作示例

    java 复制代码
    // 添加元素
    list.add(10);       // [10]
    list.add(20);       // [10, 20]
    list.add(1, 15);    // 在索引 1 插入 15 → [10, 15, 20]
    
    // 获取元素
    Integer first = list.get(0); // 10
    
    // 遍历
    for (Integer num : list) {
        System.out.println(num);
    }
    
    // 删除元素
    list.remove(1);    // 删除索引 1 的元素 → [10, 20]
相关推荐
老师我太想进步了20265 小时前
【数据结构-1】例解算法复杂度
数据结构·算法
YSL0701246 小时前
一文通关-----排序
数据结构·算法
视觉小萌新18 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
夜不会漫长19 小时前
C++:红黑树
数据结构·算法
冻柠檬飞冰走茶1 天前
PTA刷题集之Airline Routes(C语言实现)
c语言·开发语言·数据结构·算法
736c1 天前
固件开发岗算法
数据结构·算法
冻柠檬飞冰走茶1 天前
PTA刷题集之Battle Over Cities - Hard Version(C语言实现)
c语言·开发语言·数据结构·算法
PaperAccept1 天前
【研知有术论文发表】材料科学一区期刊,影响因子30+的纳米科技SCI,审稿严格但有效率
大数据·数据结构·科技·量子计算
Tairitsu_H1 天前
[C++高阶数据结构·图论下] 最短路径:为什么“挑最小的”一定正确?
数据结构·c++·图论
Tairitsu_H1 天前
[C++高阶数据结构·图论上] 最小生成树:为什么“选边”和“选点”是两条路?
数据结构·c++·图论·最小生成树