Java的比较类数组进行排序 [英] Java Comparator class to sort arrays
问题描述
我说,我们有以下的2维数组:
INT骆驼[] [] =新的INT [n] [2];
应该如何的Java 比较
类被声明为使用中的递减顺序由他们的第一个元素的数组排序 Arrays.sort(骆驼,比较器)
?在比较
供参考的功能是:
@覆盖公众诠释比较(INT []一,INT [] B)
{
返回b [0] - 一个[0];
}
的 [...]应该如何比较的Java类被声明为按递减顺序由他们的第一元素的数组进行排序 [...] 的
块引用>下面是一个使用完整的例子的Java 8
进口的java.util。*;公共类的测试{ 公共静态无效的主要(字符串ARGS []){ INT [] [] twoDim = {{1,2},{3,7},{8,9},{4,2},{5,3}}; Arrays.sort(twoDim,Comparator.comparing((INT [] ARR) - >常用3 [0])
.reversed()); 的System.out.println(Arrays.deepToString(twoDim));
}
}输出:
[[8,9],[5,3],[4,2],[3,7],[1,2]]
对于 Java 7中你可以这样做:
Arrays.sort(twoDim,新的比较< INT []≥(){
@覆盖
公众诠释比较(INT [] O1,INT [] O2){
返回Integer.compare(02 [0],O1 [0]);
}
});如果你不幸在工作的的Java 6 或年纪大了,你会怎么做:
Arrays.sort(twoDim,新的比较< INT []≥(){
@覆盖
公众诠释比较(INT [] O1,INT [] O2){
返回((整数)O2 [0])的compareTo(01 [0])。
}
});Say, we have the following 2-dimensional array:
int camels[][] = new int[n][2];
How should Java
Comparator
class be declared to sort the arrays by their first elements in decreasing order usingArrays.sort(camels, comparator)
? Thecompare
function for reference is:@Override public int compare(int[] a, int [] b) { return b[0] - a[0]; }
解决方案[...] How should Java Comparator class be declared to sort the arrays by their first elements in decreasing order [...]
Here's a complete example using Java 8:
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)); } }
Output:
[[8, 9], [5, 3], [4, 2], [3, 7], [1, 2]]
For Java 7 you can do:
Arrays.sort(twoDim, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return Integer.compare(o2[0], o1[0]); } });
If you unfortunate enough to work on Java 6 or older, you'd do:
Arrays.sort(twoDim, new Comparator<int[]>() { @Override public int compare(int[] o1, int[] o2) { return ((Integer) o2[0]).compareTo(o1[0]); } });
这篇关于Java的比较类数组进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!