gpt4 book ai didi

java - 需要帮助对数组的数组列表进行排序

转载 作者:行者123 更新时间:2023-12-02 05:50:22 25 4
gpt4 key购买 nike

我有一个包含 double 值数组的数组列表,我想对行进行排序,例如按字段中的第三个值。

有什么聪明的方法吗? (升序/降序)

声明:

private List<double[]> row = new ArrayList<double[]>();

示例:

  • 10.0、5.0、200.3
  • 9.1、1.4、3.3
  • 1.1、7.6、3.4

按第二列 (asc) 排序

  • 9.1、1.4、3.3
  • 10.0、5.0、200.3
  • 1.1、7.6、3.4

编辑!!

稍后我会尝试这个,但我没有时间测试它! mby有人可以验证这一点

    if (sortDir == SortDirection.ASCENDING) {
Collections.sort(tabelle,new Comparator<double[]>() {
public int compare(double[] array1, double[] array2) {
return Double.compare(array1[colIds.indexOf(aColId)], array2[colIds.indexOf(aColId)]);
}
});
}
if (sortDir == SortDirection.DESCENDING) {
Collections.sort(tabelle,new Comparator<double[]>() {
public int compare(double[] array1, double[] array2) {
return Double.compare(array1[colIds.indexOf(aColId)], array2[colIds.indexOf(aColId)]);
}
});
Collections.reverse(tabelle);
}

哇这么多评论:D谢谢

最佳答案

在 Java 8 中:

public static void main(final String[] args) throws IOException {
final List<double[]> row = new ArrayList<double[]>();

row.add(new double[]{10.0, 5.0, 200.3});
row.add(new double[]{9.1, 1.4, 3.3});
row.add(new double[]{9.1, 1.4, 3.3});

final List<double[]> sorted = row.stream().
sorted((l, r) -> Double.compare(l[2], r[2])).
collect(Collectors.toList());
}

或者,如果您想就地排序:

row.sort((l, r) -> Double.compare(l[2], r[2]));

关于java - 需要帮助对数组的数组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595305/

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