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 进行排序.
我如何只对列表中的一个进行排序而不对其他列表进行排序?
问题不在于如何Collections.sort()运作.问题是,不是创建列表的副本,而是将新列表设置为等于列表.这意味着它们都指向同一个对象,排序一个会对另一个进行排序,因为它们是同一个东西.要将此设置解决list1为副本a而不是将它们设置为相等.
你应该能做到的
ArrayList<String> list1 = new ArrayList<String>(a);
Run Code Online (Sandbox Code Playgroud)