不同长度的ArrayList的Java排序列表(按大小,以asc或desc为单位)
我有以下代码:
List<ArrayList<Integer>> tree = new ArrayList<ArrayList<Integer>>();`
tree.add(new ArrayList<Integer>(Arrays.asList(4,5,6)));`
tree.add(new ArrayList<Integer>(Arrays.asList(2,3)));
tree.add(new ArrayList<Integer>(Arrays.asList(1)));
tree.add(new ArrayList<Integer>(Arrays.asList(1,2, 3)));
tree.add(new ArrayList<Integer>(Arrays.asList(1,2)));
tree.add(new ArrayList<Integer>(Arrays.asList(5)));
tree.add(new ArrayList<Integer>(Arrays.asList(5,6)));
System.out.println(tree);
它返回结果:
[[4, 5, 6], [2, 3], [1], [1, 2, 3], [1, 2], [5], [5, 6]]
我想根据数字位置的值及其长度在asc或desc中对其进行排序,并希望得到结果:
*asc:[1], [1, 2], [1, 2, 3], [2, 3], [4, 5, 6], [5], [5, 6]
*描述:[5, 6], [5], [4, 5, 6], [2, 3], [1, 2, 3], [1, 2], [1]
请帮忙
# 1 楼答案
您可以使用Java 8中的
Comparator
,首先比较列表中的元素,然后比较大小:对于反向排序,只需在比较器末尾添加
.reversed()
:# 2 楼答案
你能试试这个密码吗我还没有测试它
在某些情况下,它可能会对其进行反向排序,但这是您应该执行的逻辑