繁体   English   中英

数组列表的排序 arraylist

[英]Sorting arraylist of array list

我想使用 java 对 arraylist 的数组列表进行排序,所以基本上如果我有以下 arraylist:

arr.add(<1,0>)
arr.add(<0,3>)
arr.add(<2,1>)
arr.add(<2,2>)

output 应该是:

<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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM