【问题标题】:How to sort List<Integer[]> in java?如何在 Java 中对 List<Integer[]> 进行排序?
【发布时间】:2020-06-10 06:19:30
【问题描述】:

我在 java 8 中声明了List&lt;Integer[]&gt; results = new ArrayList&lt;&gt;();。

还有result = [[-6, 1, 5],[-8, 2, 6],[-8, 3, 5]]。我想将结果排序到这个result = [[-8, 2, 6], [-8, 3, 5], [-6, 1, 5]]。我怎么能在java中做到这一点?

我实现了Collections.sort(result, (o1,o2)-&gt; {(o1.get(0) &gt; o2.get(0)) ? 1 : (o1.get(0) &lt; o2.get(0) ? -1 : 0)};);

但是这段代码 sn-p 导致错误。

【问题讨论】:

  • 如有错误,请说明错误。
  • 所以数组排序正确,您只想对数组中的第一个值进行排序?

标签: java sorting arraylist integer generic-collections


【解决方案1】:

根据您的问题,如果您只需要根据第一个值对其进行排序,那么我认为以下代码应该适合您:

        Integer[] results = {-6, 1, 5};
        Integer[] results1 = {-8, 2, 6};
        Integer[] results2 = {-8, 3, 5};
        List<Integer[]> arrays = new ArrayList<>();
        arrays.add(results);
        arrays.add(results1);
        arrays.add(results2);
        Collections.sort(arrays, (o1,o2) -> {
            return (o1[0] > o2[0]) ? 1 : (o1[0] < o2[0] ? -1 : 0);
        });
        arrays.stream()
              .forEach(x -> { 
                 Arrays.stream(x).forEach(System.out::print);
                 System.out.println();
               });

输出是:

-826
-835
-615

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多