javastring字典序_[⼩⽩问题]Java中路径String的字典序排序最近在⽤不太熟悉的 java 写点项⽬,有个需求需要把以“.”分隔的路径按照每个⼦路径的字典序排序,例如:
python:
arr = ["a.b.c", "a.b", "a.ab", "c"]
sorted(arr, key=lambda r: r.split("."))
输出: ['a.ab', 'a.b', 'a.b.c', 'c']
然⽽我⽤ java 实现却有点⿇烦,我的实现是:
java:
arr.stream().map(key -> Tuple2.apply(key, key.split("\\.")))
.sorted((o1, o2) -> {
String[] parts1 = o1._2();
String[] parts2 = o2._2();
int maxLength = Math.max(parts1.length, parts2.length);
for (int i=0;i
if (i>=parts1.length) {
return -1;
} else if(i>=parts2.length) {
return 1;
}
int compareResult = parts1[i]pareTo(parts2[i]);
if (compareResult != 0) {
return compareResult;
}
}
return 0;
小白学java有前途吗}).map(Tuple2::_1)
.List());
不得不说这代码有点...丑
所以请教各位 java ⼤神,这种逻辑有没有简洁的实现⽅法呢?
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论