5 枚のカードの値を保持する 2 次元配列があります。5 つの配列のそれぞれの最初の要素はカードのスーツを表し、2 番目の要素はカードの値を表します。
2 番目の要素の並べ替え順序を維持しながら、2 番目の要素で 2 次元配列を並べ替え、次に最初の要素で並べ替えたい (それが理にかなっている場合)。たとえば、1 のすべてのスーツは、2 のすべてのスーツよりもソートされたリストの下位になります。たとえば、{{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}} を出力しています。誰か提案はありますか?