我有一个二维数组,其中包含 5 张卡片的值。5 个数组的第一个元素代表卡片的花色,第二个元素代表卡片的价值。
我想按第二个元素对二维数组进行排序,然后按第一个元素排序,同时保持第二个元素的排序顺序(如果有意义的话)。例如,在排序列表中,所有一套花色都将低于所有两套花色。例如,{{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}}。有没有人有什么建议?