JDK8 语法基础
函数式接口
public class FunctionInterfaceDemo {
public static void main(String[] args) {
/**
* Supplier无输入,有一个输出
*/
Supplier<String> supplier = () -> "TestSupplier";
System.out.println(supplier.get());
/**
* Consumer有一个输入,无输出
*/
Consumer<String> consumer = (str) -> System.out.println(" input is :" + str);
consumer.accept(" inin");
/**
* Function输入T,返回R
*/
Function<Integer, String> function = (i) -> " out is:" + (++i);
System.out.println(function.apply(2));
/**
* UnaryOperator输入输出类型一致
*/
UnaryOperator<Integer> unaryOperator = (i) -> i * i;
System.out.println(unaryOperator.apply(2));
/**
* BiFunction输入T,U两个参数,输出R
*/
BiFunction<Integer, String, String> biFunction = (p1, p2) -> "p1:" + p1 + " p2:" + p2;
System.out.println(biFunction.apply(2, "str"));
/**
* Predicate:1个入参,判定
*/
Predicate<Integer> predicate = (i) -> i > 5;
System.out.println(predicate.test(10));
}
}
流Steam
中间操作:
Filter Map filterMap peek distinct sort limit
终止操作
foreach collect reduce min/max count
findFirst/FindAny anyMatch/allMatch/noneMatch