为什么对转换数组生成的列表进行排序也会影响原始数组
why sort a list generated from converting an array also affects the original array
我有一个数组,我将其转换为列表,然后对该列表进行排序。我遇到的问题是我不明白为什么原始数组也被排序了。见下文和输出
Output:
[0, 10, 2, abc]
[0, 10, 2, abc]
我很好奇为什么数组也被排序了?提前致谢
Arrays.asList()
方法 returns 提供的数组周围的包装器 List
对象。返回的包装器 List
有一些限制,例如您不能调用 add()
方法,因为后备数组不支持调整大小。
如果您想创建一个独立于原始数组的新 List
对象,您可以使用 java.util.ArrayList
:
String[] array = { "abc", "2", "10", "0" };
List<String> list = new ArrayList<>();
Collections.addAll(list, array);
Collections.sort(list);
System.out.println(list); // [0, 10, 2, abc]
System.out.println(Arrays.toString(array)); // [abc, 2, 10, 0]
我有一个数组,我将其转换为列表,然后对该列表进行排序。我遇到的问题是我不明白为什么原始数组也被排序了。见下文和输出
Output:
[0, 10, 2, abc]
[0, 10, 2, abc]
我很好奇为什么数组也被排序了?提前致谢
Arrays.asList()
方法 returns 提供的数组周围的包装器 List
对象。返回的包装器 List
有一些限制,例如您不能调用 add()
方法,因为后备数组不支持调整大小。
如果您想创建一个独立于原始数组的新 List
对象,您可以使用 java.util.ArrayList
:
String[] array = { "abc", "2", "10", "0" };
List<String> list = new ArrayList<>();
Collections.addAll(list, array);
Collections.sort(list);
System.out.println(list); // [0, 10, 2, abc]
System.out.println(Arrays.toString(array)); // [abc, 2, 10, 0]