【JavaSE】将数组快速转换为 List 集合的解析及其延展

代码举例: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); // ✅ 正确

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值