Java8中Lambda和Stream流
程序员文章站
2022-04-27 10:42:50
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档目录Lambad表达式含义使用解析提示Stream流Lambad表达式含义 Lambda和匿名内部类的功能是一样的,不过Lambad会比匿名内部类更加特殊,它一般是作用于只有一个抽象方法的接口,这种接口是函数式接口(接口需要添加@FunctionalInterface)。抽象方法Consumere消费型有参数无返回值Supplier供给型无参数有返回值Function函数型有参数有返回值...
Lambad表达式
含义
Lambda和匿名内部类的功能是一样的,不过Lambad会比匿名内部类更加特殊,它一般是作用于只有一个抽象方法的接口,这种接口是函数式接口(接口需要添加@FunctionalInterface)。
抽象方法 | |
---|---|
Consumere消费型 | 有参数无返回值 |
Supplier供给型 | 无参数有返回值 |
Function函数型 | 有参数有返回值 |
Predicate判断型 | 有参数有返回值,但返回值为boolean |
使用
@Test
public void test (){
// 一个实现Runnable的子类
new Thread(()->{
System.out.println("hello" + Thread.currentThread().getName());
},"线程1").start();
}
解析
lambad可分为俩部分,分别是参数列表和函数体
// 参数列表
()
//函数体
{
System.out.println("hello" + Thread.currentThread().getName());
}
提示
参数列表的类型可以不写,因为它会类型推断
PriorityQueue<Integer> pq = new PriorityQueue<>((o1,o2) -> {
return o1 - o2;
});
如果参数列表只有一个参数可以不写()
如果没有参数不可以省略()
如果函数体只有一行且是返回的语句,那么可以省略{}
Stream流
之后补充
本文地址:https://blog.csdn.net/matt17/article/details/110823395
上一篇: 测试数据参数化