Lambda表达式的无参数无返回值的练习和Lambda表达式有参数有返回值的练习

使用Lambda(无参无返回)

说明:给定一个厨师(Cook)接口,内含唯一的抽象方法makeFood,且无参数、无返回值。如下:

public interface Cook{
    public abstract void makeFood();
}

在main主函数代码中,使用Lambda的标准格式调用invokeCook方法,打印输出"该进食了!"字样

复制代码
public class DemoInvokeCook{
    public static void main(String[] args) {
        // TODO 在此使用Lambda【标准格式】调用InvokeCook方法
        
        // 使用旧方法
        invokeCook(new Cook(){
            @Override
            public void makeFood(){
                System.out.println("该进食了!");
            }
        });
        
        // 使用Lambda表达式,简化匿名内部类的书写
        invokeCook(() -> {
            System.out.println("该进食了!");
        });
   }
    
    private static void invokeCook(Cook cook){
        cook.makeFood();
    }
}
复制代码

 

使用Lambda(有参数有返回值)

案例1

  • 使用数组存储多个Peoson对象
  • 对数组中的Person对象使用Arrays的sort方法通过年龄进行升序排序
复制代码
public class Demo01LambdaMain {
    public static void main(String[] args) {
        Person[] arr = {
                new Person("张三", 29),
                new Person("李四", 19),
                new Person("王五", 31)
        };
        // 对数组中的Person对象使用Arrays的sort方法通过年龄进行升序(前边-后边)排序
        Arrays.sort(arr, new Comparator<Person>(){
            @Override
            public int compare(Person o1, Person o2) {
                return o1.getAge() - o2.getAge();   // 通过年龄进行升序
            }
        });

        // 使用Lambda表达式简化匿名内部类
        Arrays.sort(arr, (Person o1, Person o2) -> {
            return o1.getAge() - o2.getAge();
        });

        // 遍历数组
        for (Person person : arr) {
            System.out.println(person);
        }
    }
}
复制代码

 

 

posted @   夫君  阅读(64)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示