gpt4 book ai didi

java - 对二维 double 组进行排序

转载 作者:行者123 更新时间:2023-12-04 04:54:24 25 4
gpt4 key购买 nike

我尝试根据第一个值对二维 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com