# java lambda表达式 **Repository Path**: blueskyfish/lambda ## Basic Information - **Project Name**: java lambda表达式 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-09 - **Last Updated**: 2024-05-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 函数式接口
只有一个待实现方法的接口叫做函数式接口
可以在类上增加@FunctionalInterface注解来检查接口是否为函数式接口
### 引用写法
如果函数式接口的实现可以通过调用一个方法来实现,则可以使用方法发引用
public class 函数式接口引用式写法 {
	public static void main(String[] args) {
		MyInterface my = System.out::println;
		my.saySomething("abc");
	}
	
}
interface MyInterface{
	public void saySomething(String someThing);
}
### Stream API
1. Stream关注的是数据的运算,集合关注的是存储
2. Stream自己不会存储数据
3. Stream不会改变源对象,会返回一个持有结果的新Stream
4. Stream是延迟执行的,会等待需要结果时才会执行

操作方法:
1. 创建Stream,一个数据源获取一个流
2. 中间操作,对数据源进行处理
3.终端操作,一但执行终止操作,就执行中间操作链并产生结果,之后不会再被使用


创建Stream实例
1:通过集合的stream()获取顺序流和parallelStream()方法获取并行流
2: 使用数组的静态方法stream()方法获取
3: 通过Stream的of方法,它可以接收任意数量的参数
4:创建无限流,可以使用静态方法Stream.iterate()和Stream.generate()