我有一個保存5張卡片的值的二維數組。 5個陣列中每個陣列的第一個元素代表卡的花色,第二個元素代表卡的值。需要幫助按二元素排序二維數組,然後按第一個元素排序(Java)
我想排序第二個元素的二維數組,然後通過第一個元素,同時保持第二個元素的排序順序(如果這是有道理的)。例如,所有的西裝套裝在排序列表上都會比兩套套裝中的低。例如,{{0,1},{2,1},{0,2}}應該變爲{{0,1},{2,1},{0,2}}。
以下是我有:
// {{3,2}, {2,2}, {0,1}, {1,0}, {2,3}} should become
// {{1,0}, {0,1}, {2,2}, {3,2}, {2,3}}
int[][] hand = {{3,2},{2,2},{0,1},{1,0},{2,3}};
sort(hand);
public static void sort(int[][] hand){
Arrays.sort(hand, new Comparator<int[]>(){
public int compare(int[] o1, int[] o2){
return Integer.valueOf(o1[1]).compareTo(Integer.valueOf(o2[1]));
}
});
}
這是輸出{{1,0},{0,1},{3,2},{2,2},{2,3} }。有沒有人有什麼建議?
你比較沒有按」根本不考慮第一個元素的值。它需要,當第二個要素相等時。 – 2012-04-25 18:00:31