在这里,我创建了一个新的二维ArrayList并对其进行排序。每次我是否需要在循环中新建一个ArrayList?
//1. sort list, based on col 0.
//list : List<List<Integer>>
List<ArrayList<Integer>> sortedList = new ArrayList<ArrayList<Integer>>();
for(int i = 0; i < list.size(); i++){
sortedList.add(new ArrayList<Integer>(list.get(i))); //===> question for this line!
}
Collections.sort(sortedList, new Comparator<ArrayList<Integer>>() {
@Override
public int compare(ArrayList<Integer> o1, ArrayList<Integer> o2) {
return o1.get(0).compareTo(o2.get(0));
}
});
我有一个问题,我的问题。 (见箭头以上), 我需要“新的”它就像我一样, 或者我可以叫
sortedList.add(list.get(i));
这取决于 - 你想要一个新的实例或同一个对象在多个地方被引用吗? – amit 2015-02-23 21:16:09
我想我不想参考。我想要一个独立的数据列表。 – BufBills 2015-02-23 21:17:55
所以你应该使用新的 – amit 2015-02-23 21:18:07