您好我有问题,
[在java中]
我有一个二维数组 它的数组有7个int in line和更多行..
int[][] new arr=new[7][100];
排队的数字排名。
我需要排名数组。
例如
9 4 15 22 32 47 50
1 5 9 12 19 25 36
22 23 25 29 36 55 99
1 5 11 12 19 25 36
排序后
1 5 9 12 19 25 36
1 5 11 12 19 25 36
9 4 15 22 32 47 50
22 23 25 29 36 55 99
请你有一些想法?如何解决问题谢谢
答案 0 :(得分:1)
解决此问题的简单方法是将2D数组转换为1D数组的列表。
List<int[]> list = new ArrayList<int[]>();
// add logic to transform your 2D array here
然后您可以将Collections.sort()与自定义Comparator函数一起使用。
Collections.sort(list, new Comparator<int[]>() {
public int compare(int []a,int []b) {
for(int i=0;i<6;i++)
if(a[i]!=b[i]) return a[i]-b[i];
return a[6] - b[6];
}
});
答案 1 :(得分:0)
我会做这样的事情,或类似的东西:
我在Stack Overflow中看到类似的东西:https://stackoverflow.com/a/15452462/8024829。
double[][] array= {
{1, 5},
{13, 1.55},
{12, 100.6},
{12.1, .85} };
java.util.Arrays.sort(array, new java.util.Comparator<double[]>() {
public int compare(double[] a, double[] b) {
return Double.compare(a[0], b[0]);
}
});