這是一個使用Java的一個完整的例子:
import java.util.*;
public class Test {
public static void main(String args[]) {
int[][] twoDim = { {1, 2}, {3, 7}, {8, 9}, {4, 2}, {5, 3} };
Arrays.sort(twoDim, Comparator.comparing((int[] arr) -> arr[0])
.reversed());
System.out.println(Arrays.deepToString(twoDim));
}
}
輸出:
[[8, 9], [5, 3], [4, 2], [3, 7], [1, 2]]
對於的Java 7你可以這樣做:
Arrays.sort(twoDim, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return Integer.compare(o2[0], o1[0]);
}
});
如果你不幸在的Java 6或更早的版本,你會這樣做:
Arrays.sort(twoDim, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return ((Integer) o2[0]).compareTo(o1[0]);
}
});
抱歉提出一箇舊的線程,但爲什麼需要在返回比較方法時轉換爲Integer? – 2013-08-21 02:52:13
@EvolutionaryHigh,因爲你不能在'int'上調用'.compareTo'。 – aioobe 2013-08-21 09:45:20
另外@Override註釋將不能在java 5中工作。http://gackoverflow.com/questions/987973/why-does-eclipse-complain-about-override-on-interface-methods – jontro 2014-10-08 16:25:58