java - 对二维 double 数组进行排序

原文 标签 java sorting matrix double

我尝试根据第一个值对二维 double 数组 (double[][]) 进行排序。
示例:{1.0226342823592962,0.0},{1.0395582845873155,1.0}
从最大的值(value)开始。
这是我使用的代码(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 比较有关,因为这些值彼此如此接近,如果您将它们转换为 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 - JAXB xsd :include and separate packages

java - 使用Java进行SOAP服务调用时出错

java - Maven Oracle Artifact pom 依赖配置

c - 用指针而不是索引排序

c - 如何在c的矩阵中选择一个数字?

java - struts2.3.12中的servletactioncontext null

C# 帮助 : Sorting a List of Objects in C#

algorithm - 错误:没有匹配功能可调用“交换”

sql - 将游戏世界矩阵位置保存到数据库

python - 相对于矩阵的 Tensorflow 梯度