java 8 lambda 实现Comparator
文章目录
- java 8 lambda 实现Comparator
-
- 代码与写法
-
- 1. 正常的写法
- 2. java8 lambda 写法
- 3. java8 lambda 不当人写法
- 4. 我的错 Comparator不应该写出来 究极不当人写法
- 抄的情况
代码与写法
实体类
@Data
public class Cat {
private String name;private Integer age;}// 给个listpublic static List<Cat> cats = Arrays.asList(new Cat("大黄", 22),new Cat("大黑", 15),new Cat("大紫", 14),new Cat("大金", 4));
1. 正常的写法
@Testpublic void sortOld() {
Comparator<Cat> ageComp = new Comparator<Cat>() {
@Overridepublic int compare(Cat o1, Cat o2) {
return o1.getAge().compareTo(o2.getAge());}};Collections.sort(cats, ageComp);System.out.println(cats);}
2. java8 lambda 写法
@Testpublic void sortjava8Old() {
Comparator<Cat> ageComp = (o1, o2) -> o1.getAge().compareTo(o2.getAge());Collections.sort(cats, ageComp);System.out.println(cats);}
3. java8 lambda 不当人写法
@Testpublic void sortjava8New() {
Comparator<Cat> ageComp = Comparator.comparing(Cat::getAge);Collections.sort(cats, ageComp);System.out.println(cats);}
4. 我的错 Comparator不应该写出来 究极不当人写法
前面的 Comparator 直接写在 sort 方法里行了
@Testpublic void j8way3() {
cats.sort(Comparator.comparing(Cat::getAge));System.out.println(cats);}
或许这就是lambda的魅力吧…
抄的情况
抄源 | 抄量 | 抄后感 |
---|---|---|
blog | 20% | 作者写的非常浅,是位华人,这次是先阅读,然后边想象边百度,这个博客可以作为主抄博客 |