代码举例:
List<String> names = Arrays.asList("jack", "tony", "rose");
实现了将数组转换为了一个list集合,变量名为names。
特性1:固定大小,不可以增删
如:
names.add("bronya");// ❌ 抛出 UnsupportedOperationException
names.mover(0);//同上
特性2:可修改元素值
如:
names.set(0, "alice"); // ✅ 允许修改
System.out.println(names); // 输出 [alice, tony, rose]
特性3:与原数组关联
如:
String[] array = {"jack", "tony", "rose"};
List<String> list = Arrays.asList(array);
array[0] = "alice"; // 修改原数组
System.out.println(list); // 输出 [alice, tony, rose]
可以把list看作就是一个视图,用list来看array数组的那种。
注意:
1.基本类型数组不能直接传入
如果传入基本类型数组(如int[])会被识别为单个元素,需要使用包装类数组:
int[] nums = {1, 2, 3};
List<int[]> list = Arrays.asList(nums); // List<int[]> 而非 List<Integer>
System.out.println(list.size()); // 输出 1(整个数组作为一个元素)
使用了包装类数组:
Integer[] nums = {1, 2, 3};
List<Integer> list = Arrays.asList(nums); // 正确
2.Java泛型不支持基本类型
为什么可以使用List<String>不能使用List<int>呢:
因为Java泛型如List<T>要求类型参数T必须是引用类型(即对象),String是引用类型,而int是基本类型。
可以使用int的包装类Integer,包装类属于引用类型。
List<Integer> list = Arrays.asList(1, 2, 3); // ✅ 正确