JDK 8 新特性学习(二) Lambda表达式、集合流之操作

本文介绍JDK8中的Lambda表达式及集合流操作,包括Lambda表达式的使用方法及其在函数式接口中的作用,以及如何利用串行和并行流进行数据处理,如过滤、排序、映射等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDK 8 新特性学习(二) Lambda表达式、集合流之操作

Lambda表达式

首先说明lamdba的作用:
1. 将函数作为方法参数
2. 将代码当做数据

形式:

(parameter) -> expression

(parameters) -> {}

容易犯的错误,是将lambda这一部分当做实现。lambda应该是作为计算出来的一个值,赋给要用的方法或者函数.

例子:

new Thread(() -> {
 System.out.println("nokia");
}).start();

要点:

  1. 要使用lamdba表达式,需要定义一个函数式接口
  2. 在java 8中,只有一个方法的接口的类可以认为是一个函数。然后使用的时候不必声明函数类型,由接口的方法签名自动推导出来。
  3. java 8中预先定义了一些函数来避免建立过多的lambda接口, 比如Function
集合的流操作

串行和并行的流
流有串行和并行两种,串行流上的操作是在一个线程中依次完成,而并行流则是在多个线程上同时执行。并行与串行的流可以相互切换:通过 stream.sequential() 返回串行的流,通过 stream.parallel() 返回并行的流。

在stream的时候,可以做一些中间操作:
1. filter()对元素进行过滤
2. sorted()对元素排序
3. map() 对元素的映射
4. distinct() 去除重复元素
5. subStream() 获取子Stream

在终止的时候,也可以做一些操作:
1. forEach() 对每个元素做处理
2. toArray() 把元素到导出到数组
3. findFirst() 返回第一个匹配的元素
4. anyMatch() 是否有匹配的元素


  1. 仍然没有明白lambda的应该具体使用和好处,还需要更多的实践
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值