Collections.sort()会影响所有ArrayLists.我如何只排序一个列表而不排序其他列表?

Leo*_*sen 3 java sorting arraylist

我有三个ArrayLists:
一个用于按照输入的顺序存储用户输入,位于主类中.
第二个与第一个完全相同,但它被传递给一个remTrip被复制的方法并返回结果.
第三个是list1在下面的代码中,这是正在处理的代码.

public static ArrayList<String> remTrip( ArrayList<String> a){
    //code here
    ArrayList<String> list1 = a;
    Collections.sort(list1);
    //code to remove triplicates from the list and returns the result
}
Run Code Online (Sandbox Code Playgroud)

我想保持第ArrayList<String>一个按照它的顺序(即{"dog", "cat" , "tiger", "cat", "cat"}),但显然是对Collections.sort()所有ArrayLists 进行排序.

我如何只对列表中的一个进行排序而不对其他列表进行排序?

nho*_*er9 6

问题不在于如何Collections.sort()运作.问题是,不是创建列表的副本,而是将新列表设置为等于列表.这意味着它们都指向同一个对象,排序一个会对另一个进行排序,因为它们是同一个东西.要将此设置解决list1为副本a而不是将它们设置为相等.

你应该能做到的

ArrayList<String> list1 = new ArrayList<String>(a);
Run Code Online (Sandbox Code Playgroud)