Java sort(list)还可以对旧列表(如mList、myList)进行排序或反转
我有两个列表,一个用于存储原始数据,另一个用于排序数据。在这种情况下,Java sort(list)还可以对旧列表(如mList、myList)进行排序或反转,java,android,Java,Android,我有两个列表,一个用于存储原始数据,另一个用于排序数据。在这种情况下, //Used to store the sorted and reversed data sortedList = new ArrayList<>(); //Assigning mList raw data in a new list sortedList = mList; //Here, I'm sorting and reversing Collections.sort(sortedList); Coll
//Used to store the sorted and reversed data
sortedList = new ArrayList<>();
//Assigning mList raw data in a new list
sortedList = mList;
//Here, I'm sorting and reversing
Collections.sort(sortedList);
Collections.reverse(sortedList);
//用于存储已排序和已反转的数据
sortedList=新的ArrayList();
//在新列表中分配mList原始数据
sortedList=mList;
//在这里,我正在排序和反转
收集.分类(分类列表);
收款。反向(分类列表);
sortedList现在被排序和反转,但问题是mList本身也被排序。为什么?我应该如何排序唯一的列表,而不是旧的列表。帮帮忙。感谢您的帮助。谢谢。您的排序操作正在引用原始列表的同一引用上进行。一种解决方法是通过复制构造函数复制原始列表:
sortedList = new ArrayList<>(mList);
Collections.sort(sortedList); // doesn't affect mList
Collections.reverse(sortedList); // also doesn't affect mList
sortedList=新阵列列表(mList);
Collections.sort(sortedList);//不影响mList
收藏。反向(分类列表);//也不影响mList
因为sortedList
和mList
都有相同的参考。不是直接针对你的问题,而是排序然后反转;首先,我会按相反的顺序排序。比如,Collections.sort(sortedList,Collections.reverseOrder())代码>您有一个列表,由两个变量引用。因此,对它进行排序。