集合在Arraylist的副本上排序(保持原始顺序)

And*_*sen 0 java sorting collections arraylist

如果我有一个arraylist,我想要一个排序和未分类的版本,我怎么能实现它.

试过收藏

ArrayList<Integer> someNumbers = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)

如果我然后创建一个新的arraylist = someNumbers并对其进行排序.原始的一个也被排序了?

ArrayList<Integer> sortedNumbers = someNumbers;
Collections.sort(sortedNumbers);
Run Code Online (Sandbox Code Playgroud)

两个列表都被排序.

我怎样才能简单地实现我想做的事情?(获取一个已排序的副本,并保持其原始顺序的原始)

mar*_*ran 11

执行此操作时ArrayList<Integer> sortedNumbers = someNumbers;,您不会创建要排序的新列表.您基本上将变量分配给分配sortedNumbers给的完全相同的列表someNumbers.

要解决此问题,您可以从其他列表中创建新列表.像这样:

ArrayList<Integer> sortedNumbers = new ArrayList<>(someNumbers);
Run Code Online (Sandbox Code Playgroud)