gpt4 book ai didi

java - Java中如何根据比率对两个数组进行排序?

转载 作者:行者123 更新时间:2023-12-01 09:28:00 26 4
gpt4 key购买 nike

我想根据两个数组匹配索引的比率对它们进行排序。因此根据a[x]/b[x]的比率,a[]和b[]被相应地排序。这是基本结构:

double[] a = {60.0, 100.0, 120.0};
double[] b = {20.0, 50.0, 30.0};

r0 = a[0]/b[0]
r1 = a[1]/b[1]
r2 = a[2]/b[2]
...

我正在编写的 Java 代码无法运行。有人可以给我一些帮助吗?

Arrays.sort(ratio, new Comparator<double[]>() {
@Override
public double compare(double[] a, double[] b) {
double r1 = (double)a[i]/b[i];
double r2 = (double)a[i+1]/b[i+1];
return r1 > r2;
}

});

最佳答案

您可以像这样声明一个Pair:

static class Pair {
double a;
double b;
Pair(double a, double b) {
this.a = a;
this.b = b;
}
}

并将数组放入数组对中。然后很容易对它们进行排序:

Pair[] p = new Pair[a.length];
for (int i = 0; i < p.length; i++)
p[i] = new Pair(a[i], b[i]);

Arrays.sort(p, (p1, p2) -> Double.compare(p1.a/p1.b, p2.a/p2.b));

当然,结果在新数组中。如果需要,您可以循环并将它们放回 ab

关于java - Java中如何根据比率对两个数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39685116/

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