【发布时间】:2019-06-28 19:30:54
【问题描述】:
我有:
String[] subdivisions = {"K1","K1\\SK1","K2","K2\\SK1\\SSK1"};
我排序了:
Arrays.stream(subdivisions).sorted(Comparator.reverseOrder()).forEach(System.out::println);
我明白了:
K2\SK1\SSK1
K2
K1\SK1
K1
但我需要这样排序:
K2
K2\SK1\SSK1
K1
K1\SK1
如何更改排序条件? 如何正确编写排序?
【问题讨论】:
-
通过编写自己的比较器,将“A\B”放在“A”之后?
-
如果元素不按这个顺序怎么办?你总是期望得到这样的结果吗?
-
@YCF_L 这是一个排序,原始顺序无关紧要。
reverseOrder()不是逆向操作,是自然降序排序。 -
@YCF_L 是的。我需要先去长度小于下一个元素的地方。并以相反的顺序
-
@YCF_L 我明白了,只是举个例子。