Это в основном та же проблема, что и сортировка группы целых чисел, за исключением того, что вместо целых чисел у вас есть набор объектов (в данном случае кортежи - или в вашем коде два массива int), которые необходимо отсортировать.
В отличие от Python, Java не выводит автоматически лексикографический порядок таких вещей, как int [], поэтому вы можете просто передать его в функцию сортировки и ожидать, что он будет работать. К счастью, java позволяет вам определить, каким должен быть порядок, а затем использовать встроенный метод сортировки для его сортировки. Это делается путем реализации Comparator
и последующего определения его compare
метода, который говорит ему, как сравнивать два объекта.
(очень упрощенный) пример, приведенный ниже.
import java.util.*;
class Main{
public static void main(String args[]){
int[][] array={{2,2},{1,1},{4,3},{2,1},{10,1}};
Arrays.sort(array, new Comparator<int[]>(){
public int compare(int[] a, int[] b){
//assumes array length is 2
int x,y;
if (a[0]!=b[0]) {
x=a[0];y=b[0];
}
else{
x=a[1];y=b[1];
}
if (x<y) return -1;
else if (x==y) return 0;
else return +1;
}
});
for(int[] term: array){
System.out.println(Arrays.toString(term));
}
}
}