当前位置: 代码迷 >> 综合 >> java 8 lambda 实现 Comparator
  详细解决方案

java 8 lambda 实现 Comparator

热度:71   发布时间:2023-11-21 01:45:55.0

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% 作者写的非常浅,是位华人,这次是先阅读,然后边想象边百度,这个博客可以作为主抄博客
  相关解决方案