java - 对二维数组进行排序

标签 java sorting type-2-dimension

我有一个二维 double 组,我想根据第二列对其进行排序。我编写了这段代码,但在最后一行“无法取消引用 double ”时出现此错误。它似乎适用于字符串,但不适用于数组。任何帮助表示赞赏。

import java.util.Arrays;
import java.util.Comparator;

public class Sort { 
    public static void main(String args[]){
        //Array to sort
        double[][] X = new double[][]{
                {1.2,2,1,3.1},
                {1,2.7,3.3},
                {1,2.3,3.1},
                {1.5,3.2,2.4};

        //Sort the array by column 2
        Arrays.sort(X, new ColumnComparator(2));
    }
}


//Class that extends Comparator
class ColumnComparator implements Comparator {
    int columnToSort;
    ColumnComparator(int columnToSort) {
        this.columnToSort = columnToSort;
    }
//overriding compare method
    public int compare(Object o1, Object o2) {
        double[] row1 = (double[]) o1;
    double[] row2 = (double[]) o2;
    //compare the columns to sort
    return row1[columnToSort].compareTo(row2[columnToSort]);
}

最佳答案

public class SecondColumnComparator implements Comparator<double[]> {
    @Override
    public int compare(double[] row1, double[] row2) {
        return Double.compare(row1[1], row2[1]);
        // or, before Java 7:
        // return Double.valueOf(row1[1]).compareTo(Double.valueOf(row2[1]));
    }    
}

关于java - 对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15422091/

相关文章:

java - 如何在用 jRuby 编写的 Java 程序中自定义退出状态?

c++ - 如何在opencv中将二维数组转换为灰度图像?

Java将一维 vector 添加到二维 vector

SQL 构建类型 2 维度

java - LDAP 连接在 Linux 上的备用连接上抛出 SunCertPathBuilderException

Java Hibernate OneToOne 异常映射错误?

java - 使用java创建多条目zip文件时出现问题

python - 在不同命名的字段上对两个不同的模型进行排序

python - 实现归并排序算法

java - 按字母顺序对数组中的对象进行排序