List<Integer> list=new ArrayList<>()
List<Integer> list = new ArrayList<>(); 是 Java 中创建泛型列表的常见语法,下面详细解释其含义和关键点:
1. 代码拆解
List<Integer> list = new ArrayList<>();
-
List<Integer>:- 接口类型:
List是 Java 集合框架中的接口,定义了有序、可重复的集合操作(如添加、删除、索引访问等)。 - 泛型参数
<Integer>:指定列表中只能存储Integer类型的对象(即整数的包装类)。使用泛型后,编译器会自动检查类型安全,避免运行时的ClassCastException。
- 接口类型:
-
new ArrayList<>():- 实现类:
ArrayList是List接口的动态数组实现,支持自动扩容。 - 菱形语法
<>:Java 7 引入的语法糖,允许省略右侧的泛型参数(编译器会根据左侧类型自动推断)。
- 实现类:
2. 关键点说明
2.1 泛型的作用
- 类型安全:
list.add(10); // 合法:自动装箱 int → Integer list.add("hello"); // 编译错误:类型不匹配无需手动类型转换:
Integer num = list.get(0); // 直接获取 Integer 类型,无需强制转换2.2 动态数组特性
ArrayList会自动扩容,初始容量为 10,超过容量时会创建更大的数组并复制元素。- 缺点:插入 / 删除操作效率较低(需移动元素),适合随机访问场景。
2.3 多态的应用
- 面向接口编程:变量声明为
List接口类型,而非具体实现类ArrayList,便于后续更换实现(如改用LinkedList)。// 可无缝切换为 LinkedList List<Integer> list = new LinkedList<>();3. 常见操作示例
// 添加元素 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]
