java - 根据最后一列排序

标签 java sorting

我有一个这样的数组:

 UserID |ItemID | Score
    1      10     2.0
    1      11     1.2
    1      12     1.4

..........

我想根据得分列对数组进行排序。我的代码是:

double[][] arr=new double [1000][3];

    int i=0;int j=0;int k=0;
    while ((phrase = br.readLine()) != null) {
         String[] splited =phrase.split("\t");
         arr[i][0]=Double.parseDouble(splited[0]);
         i++;
         arr[j][1]=Double.parseDouble(splited[1]);
         j++;
         arr[k][2]=Double.parseDouble(splited[2]);
         k++;
    }


    //print(a);
    System.out.println();
   Arrays.sort(arr, new java.util.Comparator<double[]>() {
       public int compare(double[] a, double[] b) {
            return (int)(a[1] -b[1]);
        }
    });
    print(arr);

但它不起作用!怎么了?

最佳答案

如果需要按第三列排序,则需要使用a[2]

public static void main(String[] args) {
    double[][] arr = { { 1, 10, 2.0 }, { 1, 11, 1.2 }, { 1, 12, 1.4 }, };
    ;
    Arrays.sort(arr, new Comparator<double[]>() {
        public int compare(double[] o1, double[] o2) {
            return Double.compare(o1[2], o2[2]);
        }
    });

    for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr.length; j++) {
            System.out.print(arr[i][j]);
            System.out.print("\t");
        }
        System.out.println();
    }

}

关于java - 根据最后一列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837645/

相关文章:

java - camerax "Not bound to a valid Camera"用于 Android 11 上的 imageCapture 用例

java - Android:如何更改 ProgressBar 的高度?

java - 我应该同时使用锁和 volatile 吗?

java - 我需要用户以一种格式输入时间,将其转换为另一种格式,执行计算,然后再次将其返回

python - 按重复元素对元组进行排序和组合

javascript - 如何对这个 javascript 对象进行排序?

algorithm - 确定是否从一系列数字中看到了唯一数字

java - 你在哪里定义spring bean配置文件

swift - 如何在 Firebase 中对数据进行排序?

c++ - 使用 C++ 库根据键对对象进行排序的最快方法是什么?