Java--Lambda表达式//学习笔记

Lambda表达式是Java SE8 中的 一个重要的新特性

Lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体

Lambda表达式还增强了集合库

在Lambad表达式中this是指外围实例,而匿名类中的this是指匿名类实例,

如果想在Lambda表达式里面修改外部变量的值,可以将变量定义为非局部变量,即为实例变量或者将变量定义为数组

Lambda表达式如果引用某局部变量,则直接将其视为final

1.Lambda表达式没有命名,用来像传递数据一样传递操作

2.函数式接口指的是只有一个抽象方法的接口,被当做是Lambda表达式的类型,最好使用@Functionallnterface注解,防止其他人在里面添加方法,只需要在想要执行的地方利用传递的对象调用对应的接口中唯一的方法即可

Stream 的特性

1.stream不存储数据

2.stream不改变源数据

3.stream的延迟执行特性

Lambda表达式语法:基本语法

(parameters)->expression或(parameters)->(statements)

1.)不需要参数,返回值为5

( )->5

2.)接受一个参数(数字类型),返回其2倍的值

x->2*x

3.)接受2个参数(数字),并返回差值

(x,y)->x-y

4.)接受2个int类型的整数,返回他们的和

(int x,int y)->x+y

5.)接受一个string对象,并在控制台打印,不返回任何值

(String s)-> System.out.print(s)

基本Lambda例子

 1.2使用Lambda  expression 排序players

Comparator<String> sortByName=(String s1,String s2)->(s1.compareTo(s2));

Array.sort(players,sortByName);

1.3也可以使用如下方式 

Arrays.sort(players, (String s1, String s2) -> (s1.compareTo(s2))); sort方法可以穿传一个comparator的实现对象,而这个类是功能类,所以可以用Lambda。

 使用Lambda和Stream

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值