java - 对二维 double 组进行排序

标签 java sorting matrix double

我尝试根据第一个值对 2D double 组 (double[][]) 进行排序。 例如:{1.0226342823592962,0.0}, {1.0395582845873155,1.0} 从最大的值开始。 这是我使用的代码(java生成了一半)

java.util.Arrays.sort(indexMatrix, new java.util.Comparator<double[]>() {

        @Override
        public int compare(double[] o1, double[] o2) {
            // TODO Auto-generated method stub
            return 0;
        }


    });

但是我的“indexMatrix”之后没有改变。我认为这与 public int Compare 有关,因为这些值彼此非常接近,如果将它们转换为 int,它们将全部为 1 并且无法排序。还是别的什么?

最佳答案

为什么要将它们转换为整数?只需使用 Double.compareTo(Double)排序方法中的方法:

public static void main(String[] args) {

    double[][] indexMatrix = new double[][] {
                  new double[] { 1.02, 100 }, 
                  new double[] { 1.03, 123 },
                  new double[] { 1.01, 321 } };

    Arrays.sort(indexMatrix, new Comparator<double[]>() {
        @Override
        public int compare(double[] o1, double[] o2) {
            return Double.compare(o2[0], o1[0]);
        }
    });

    for (double[] d : indexMatrix)
        System.out.println(Arrays.toString(d));
}

输出:

[1.03, 123.0]
[1.02, 100.0]
[1.01, 321.0]

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

相关文章:

java - 无法按升序对列表进行排序

java - 鼠标释放时对 JTable 进行排序

java - Mockito @InjectMocks 不适用于相同类型的字段

Java - Vector 与 ArrayList 性能 - 测试

java - 尝试写入文件时出现 NullPointerException

matrix - Lapack 的行减少

java - 垂直枚举分组列

c++ - CUDA c++,简单的矩阵乘法错误

java - 使用 datastax 映射器使用 saveAsync 保存数千条记录是个好主意吗

java - 在 64 位 Java 中使用 long 而不是 int 有好处吗