在這裏,我創建了一個新的二維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