对数组列表的数组列表进行排序
Sorting arraylist of array list
我想使用 java 对数字数组列表的数组列表进行排序,所以基本上如果我有以下数组列表:
arr.add(<1,0>)
arr.add(<0,3>)
arr.add(<2,1>)
arr.add(<2,2>)
输出应该是:
<0,3>
<1,0>
<2,1>
<2,2>
arraylist应该按照第一个键然后第二个键排序。
这是一种方法。使用 lists.sort()
数据
List<List<Integer>> lists =
new ArrayList<>(List.of(List.of(0, 3), List.of(1, 0),
List.of(2, 1), List.of(2, 2)));
随机播放演示
Collections.shuffle(lists);
- 先比较每个列表的第一个元素,正常排序
- 如果两个元素相等,则根据下一个元素排序。
lists.sort(Comparator
.comparing((List<Integer> lst) -> lst.get(0))
.thenComparing(lst -> lst.get(1)));
lists.forEach(System.out::println);
打印
[0, 3]
[1, 0]
[2, 1]
[2, 2]
我想使用 java 对数字数组列表的数组列表进行排序,所以基本上如果我有以下数组列表:
arr.add(<1,0>)
arr.add(<0,3>)
arr.add(<2,1>)
arr.add(<2,2>)
输出应该是:
<0,3>
<1,0>
<2,1>
<2,2>
arraylist应该按照第一个键然后第二个键排序。
这是一种方法。使用 lists.sort()
数据
List<List<Integer>> lists =
new ArrayList<>(List.of(List.of(0, 3), List.of(1, 0),
List.of(2, 1), List.of(2, 2)));
随机播放演示
Collections.shuffle(lists);
- 先比较每个列表的第一个元素,正常排序
- 如果两个元素相等,则根据下一个元素排序。
lists.sort(Comparator
.comparing((List<Integer> lst) -> lst.get(0))
.thenComparing(lst -> lst.get(1)));
lists.forEach(System.out::println);
打印
[0, 3]
[1, 0]
[2, 1]
[2, 2]