Lambda表达式——Java学习笔记

1 篇文章 0 订阅

Lambda表达式

面向对象思想:找一个事情的对象,调用其方法来完成事项

函数式编程思想:只关心结果,不关注对象是什么

new Thread(()->{
    xxx;
	}
).start();

格式:

  1. 一些参数:使用“,”分隔,写在括号内
  2. 一个箭头
  3. 一段大括号

举例:排序数组person对象,以arrays.sort方法按照person年龄排序

main(){
    Person parray[] ={
        new Person("hello",22),
        new Person("nihao",34),
        new Person("world",11)
    }
    Arrays.sort(parray,new comparator{
        @override
        public int compare(Person o1,Person o2){
            return o1.getAge()-o2.getAge();
        }
    });
    for(Person person : parray){
        System.out.plantln(person);
    }
    /**
    Person{name='world', age=11}
    Person{name='hello', age=22}
    Person{name='nihao', age=34}
    */
    //使用lambda表达式后
    Arrays.sort(parray,(Person o1,Person o2)->{
        return o2.getAge()-o1.getAge();
    });
    for(Person person : parray){
        System.out.plantln(person);
    }
    /**
    Person{name='nihao', age=34}
    Person{name='hello', age=22}
    Person{name='world', age=11}
    */
}

Lambda省略格式

可推导,可省略:

  1. 参数列表数据类型可省略
  2. 参数只有一个时,可以省略
  3. {}中,只有一行代码,可以省略大括号,return和分号,且要省全省

注意事项:

  1. 使用lambda需要有接口,且接口中只有一个抽象方法
  2. 方法参数或局部变量必须为lambda对应接口类型

有且仅有一个抽象方法的接口为函数式接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值