java中的Lambda表达式

Lambda表达式

java1.8的重要特性

语法糖(可以用简洁的语法实现复杂的功能)

语法:

(参数)->表达式    或     (参数)->{   语句;}

应用场景

1. 主要用于实现接口

1. 定义类实现接口,创建类的对象

2. 匿名内部类

3.表达式

注:只能实现函数式接口(Functionallnaterface),( 函数式接口 也就是接口只有一个方法需要实现)

2. 使用在线程上,例:

    
 3. 使用lambda操作集合

a .集合的遍历


        //a.对集合的遍历
        list.forEach((a)->System.out.println(a));
        System.out.println("------------------------------------------");
        //b.排序(x1-x2的顺序)
        Collections.sort(list,(x1,x2)->(x1.getAge()-x2.getAge()));
        list.forEach((a)->System.out.println(a));
        System.out.println("------------------------------------------");

b. 对集合的筛选

 //筛选相等的
        list.stream().filter((x1)->(x1.getName()=="aa")).forEach((a)-> System.out.println(a));
        System.out.println("------------------------------------------");
        //筛选第一个为a的(这里有三种筛选:起始,结束,到)
        list.stream().filter((x1)->x1.getName().startsWith("a")).forEach((a)-> System.out.println(a));
        System.out.println("------------------------------------------");

注 : 这里list.stram相当于收集包装成一个List集合,filter是过滤,并且可以多重筛选

       有三种收集器:

Collectors.toList()       List收集器,

Collectors.toMap()     Map收集器,

Collectors.toSet()       Set收集器

c. 转换

集合.stream().map((参数) -> (表达式)).forEach(...);

d. 合并

集合.stream().reduce((参数1,参数2) ->(表达式)).get();

.get()是返回值

e. 限制返回数

集合.stream().limit(3).forEach((x)-> System.out.println(x));

f. 求最大的值

Student student =集合.stream().max(参数1,参数2)->s1.getAge() - s2.getAge()).get();

求年龄最的大的人

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值