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]