Arrays.asList()返回固定大小的列表,不支持add/remove操作;2. 基本类型数组会被当作单个对象,应使用包装类型;3. 返回列表与原数组共享内存,修改相互影响,需复制避免。
Java中的Arrays.asList()方法是一个便捷工具,用于将数组转换为列表。虽然使用简单,但有几个关键点需要注意,避免在实际开发中踩坑。
Arrays.asList() 返回的是 java.util.Arrays.ArrayList,这是一个内部类,它不支持添加或删除元素的操作。
调用 add() 或 remove() 方法会抛出 UnsupportedOperationException。List
由于泛型不支持基本数据类
型,传入基本类型数组时,整个数组会被当作单个对象处理。
int[] arr = {1, 2, 3}; List list = Arrays.asList(arr);
正确做法是使用包装类型:Integer[] arr = {1, 2, 3};
因为 asList 返回的列表与原数组共享同一块内存,所以对列表中元素的修改会反映到原数组上。
如果希望两者独立,需要复制一份数据到新的集合中。
基本上就这些注意事项。只要理解它返回的是一个受限的、与原数组绑定的列表,就能避免大多数问题。