Java中 Arrays.asList 的坑
在Java中,Arrays.asList()方法用于将数组转换为List对象。以下是使用Arrays.asList()时需要注意的一些事项:
- 不可变性:Arrays.asList()返回的List对象是不可变的。这意味着你不能使用add()、remove()等方法来修改列表。如果需要修改列表,可以先将其转换为ArrayList或其他可变列表实现。
List<String> list = Arrays.asList("A", "B", "C");
list.add("D"); // 抛出 UnsupportedOperationException
- 修改数组:如果原始数组是基本类型(如int[]、double[]等),则不能直接修改返回的List对象。但是,如果原始数组是引用类型(如String[]、Integer[]等),则可以通过List对象修改数组元素。
Integer[] intArray = {1, 2, 3};
List<Integer> list = Arrays.asList(intArray);
list.set(0, 42); // 修改原始数组的第一个元素
System.out.println(Arrays.toString(intArray)); // 输出:[42, 2, 3]
- 空值和长度:Arrays.asList()允许包含null值,并且返回的List对象的长度与数组长度相同。如果需要创建一个空列表,可以使用Arrays.asList()的空参数版本:
List<Object> emptyList = Arrays.asList(); // 创建一个空列表
- 泛型:Arrays.asList()方法是泛型的,因此可以将其用于任何类型的数组。但是,如果数组的类型不匹配,编译器会报错。
- 不能直接使用 Arrays.asList 来转换基本类型数组
总之,在使用Arrays.asList()时,需要注意其返回的List对象是不可变的,不能直接修改基本类型数组,但可以通过List对象修改引用类型数组。此外,还需要注意泛型和空值的处理。
本文来自博客园,作者:Micky233,转载请注明原文链接:https://www.cnblogs.com/geek233/p/18020415
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~