public static void main(String[] args) {
List<String> list = Arrays.asList("word", "dd", "da", "dc", "dword", "d");
// 多字段排序
list.sort((s1, s2) -> {
int i = s2.length() - s1.length();
if (i == 0) {
i = s1.compareTo(s2);
}
return i;
});
System.out.println("长度由长到短 长度相同时按照字符序列 类似于一个降序一个升序");
print(list);
list.sort(Comparator.comparingInt(String::length).thenComparing(s -> s));
System.out.println("长度由短到长 长度相同时按照字符序列 类似于默认升序");
print(list);
}
private static void print(List<String> list) {
for (String s : list) {
System.out.println(s);
}
}
长度由长到短 长度相同时按照字符序列 类似于一个降序一个升序
dword
word
da
dc
dd
d
长度由短到长 长度相同时按照字符序列 类似于默认升序
d
da
dc
dd
word
dword