Java8中Lambda和Stream流
阿新 • • 發佈:2020-12-07
Lambad表示式
Lambda和匿名內部類的功能是一樣的,不過Lambad會比匿名內部類更加特殊,它一般是作用於只有一個抽象方法的介面,這種介面是函式式介面(介面需要新增@FunctionalInterface)。
抽象方法 | |
---|---|
Consumere<T>消費型 | 有引數無返回值 |
Supplier<T>供給型 | 無引數有返回值 |
Function<T>函式型 | 有引數有返回值 |
Predicate<T>判斷型 | 有引數有返回值,但返回值為boolean |
使用
解析
lambad可分為倆部分,分別是引數列表和函式體
// 引數列表
()
//函式體
{
System.out.println("hello" + Thread.currentThread().getName());
}
提示
引數列表的型別可以不寫,因為它會型別推斷
PriorityQueue<Integer> pq = new PriorityQueue<>((o1,o2) -> {
return o1 - o2;
});
如果引數列表只有一個引數可以不寫()
如果沒有引數不可以省略()
如果函式體只有一行且是返回的語句,那麼可以省略{}
Stream流
之後補充