如何对 java 中的 List<Integer[]> 进行排序?
How to sort List<Integer[]> in java?
我在 java 8.
中声明了 List<Integer[]> results = new ArrayList<>();
和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)-> {(o1.get(0) > o2.get(0)) ? 1 : (o1.get(0) < o2.get(0) ? -1 : 0)};);
但是这个代码片段导致了错误。
根据您的问题,如果您只需要根据第一个值对其进行排序,那么我认为以下代码应该适合您:
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
我在 java 8.
中声明了List<Integer[]> results = new ArrayList<>();
和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)-> {(o1.get(0) > o2.get(0)) ? 1 : (o1.get(0) < o2.get(0) ? -1 : 0)};);
但是这个代码片段导致了错误。
根据您的问题,如果您只需要根据第一个值对其进行排序,那么我认为以下代码应该适合您:
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