java8之前,对字符串的排序:
List<String> names1 = Arrays.asList("peter", "sdf", "person", "sadd");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
Java 8 中不再推荐这种写法,而是推荐使用 Lambda 表达:
Collections.sort(names1, (String a, String b) -> {
return b.compareTo(a);
});
还可以更简洁一点,省去大括号和return
Collections.sort(names1, (String a, String b) -> b.compareTo(a));
List 集合现在已经添加了 sort 方法。而且 Java 编译器能够根据类型推断机制判断出参数类型,这样,你连入参的类型都可以省略啦,还可以更简洁一点
names2.sort((a,b) -> a.compareTo(b));
当然编辑器提示字符串大小比较的方法已经有了,可以将lambda表达式替换为函数方法引用
替换之后更加简洁
names2.sort(String::compareTo);
names2.stream().forEach(System.out::println);