Java中好用的Arrays.asList有哪些坑
坑一:返回的List不支持修改操作
使用Arrays.asList方法返回的List是一个固定大小的列表,它是由原始数组支持的,因此它的大小不能改变。当我们尝试对这个列表进行添加、删除或者修改元素时,会抛出UnsupportedOperationException异常。
示例代码:
List<String> list = Arrays.asList("Hello", "World");
list.add("Java"); // 抛出UnsupportedOperationException异常坑二:返回的List对基本数据类型自动装箱
Arrays.asList方法对于基本数据类型的数组会进行自动装箱操作,将基本类型转换为对应的包装类对象。这样一来,如果我们尝试在基本数据类型的数组上使用Arrays.asList,会得到一个List<T[]>而不是List<T>。这可能与我们的预期不符。
示例代码:
int[] arr = {1, 2, 3};
List<int[]> list = Arrays.asList(arr);
System.out.println(list.size()); // 输出1,而不是3坑三:数组与列表的关联性
Arrays.asList方法返回的List与原始数组是关联的,任何一方的修改会影响到另一方的数据。
示例代码:
String[] arr = {"Hello", "World"};
List<String> list = Arrays.asList(arr);
arr[0] = "Java";
list.set(1, "Code");
System.out.println(Arrays.toString(arr)); // 输出[Java, Code]从上述代码可以看出,对数组或者列表的任何修改都会反映到另一方。
上一篇
Delphi中怎么使用RTTI 猜您想看
-
JNPF中强大的业务流程引擎是怎么快速实现OA系统
JNPF(Ja...
2023年07月21日 -
做好内容运营展开打造出千万级的产品方法有哪些
1. 内容计划...
2023年05月22日 -
如何在宝塔面板中配置邮件服务器?
宝塔面板中如何...
2023年04月16日 -
如何在Linux中设置用户访问权限?
Linu...
2023年04月15日 -
csgo中的所谓"错误"技巧
什么是CSGO...
2023年05月15日 -
油猴脚本编写技巧:使用 GM_setValue 和 GM_getValue 存储数据
随着技术的不断...
2023年05月13日