java1.8常用的Lamdba表达式 Stream API

本文介绍了Java 8中的Lambda表达式,它是一个匿名函数,提升编程效率和可读性。Lambda表达式的组成部分包括参数和主体。文章还探讨了Stream API,它是集合对象的增强,支持串行和并行操作。通过举例展示了常见的Lambda表达式用法,如forEach、sort、map和reduce。最后,讲解了如何使用Collectors.groupingBy将Stream元素进行归组。
摘要由CSDN通过智能技术生成

Lambda表达式是什么,有什么用?

Lambda表达式是一个匿名函数,运用Lambda表达式可以极大的提高编程效率和程序可读性。
Java 8 中的 Stream 是对集合(Collection)对象功能的增强,对集合进行各种非常便利、高效的聚合操作,或者大批量数据操作。
Stream 可以理解为高级版本的 Iterator。同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势,使用 fork/join 并行方式来拆分任务和加速处理过程。
 

了解下lamdba表达式的组成:

(str) -> System.out.println(str)

左边代表参数,右边代表主体。

(str) :代表参数,不写类型会根据上下文获取(str1),也可以自己定义参数(String str1),也可以有多个参数(String str1,String str2),也可以无参()。

->     :  理解为“转到”的意思

System.out.println(str) : 代表主体,如果是代码块加上花括号{System.out.println(str1); System.out.println(str2);}

废话少说,下面介绍下在项目中经常用到的Lamdba表达式

常用的Lamdba表达式

代替匿名内部类

//before
new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("123");
    }
}).start();

//after
new Thread(() -> System.out.println("456")).start();

forEach:循环List

List<String> list = Arrays.asList("2", "b", "10", "4", "6", "aa", "b", "ccdf");

//before
for (String str : list) {
    System.out.println(str);
}

//after
list.forEach((str) -> System.out.println(str));

// double colon operator
list.forEach(System.out::println);

System.out.println("**********************************************");

//before
for (String str : list) {
    if (str.equals("a")) {
        System.out.println(str);
    }
}

//after
list.forEach((str) -> {
    if (str.equals("a")) {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值