java新特性stream,也称为流式编程。
在学习stream之前先了解一下java内置的四大函数
第一种函数式函数,后面是lambda表达式写法
/*Function<String,Integer> function = new Function<String, Integer>() { @Override public Integer apply(String s) { return null; } };*/
//函数式 有请求参数和返回值 Function<String, Integer> function = s -> { return 1024; }; System.out.println(function.apply("函数式"));
第二种布尔型函数(断定型参数)
/* Predicate<String> predicate = new Predicate<String>() { @Override public boolean test(String s) { return false; } };*/ //布尔型函数(断定型参数) 有请求参数和返回boolean值 Predicate<String> predicate = s -> { return s.isEmpty(); }; System.out.println(predicate.test("sss"));
第三种消费型函数
/* Consumer<String> consumer = new Consumer<String>() { @Override public void accept(String s) { } };*/ //消费型函数 有请求参数和无返回值 Consumer<String> consumer = s -> { System.out.println(s); }; consumer.accept("java ");
第四种
/*Supplier<String> supplier = new Supplier() { @Override public String get() { return null; } };*/ //供给型函数 无请求参数和有返回值 Supplier<String> supplier = ()-> { return "hello"; }; System.out.println(supplier.get()); }
我们再看一下stream常用方法:
filter:里面传入一个Predicate布尔型函数,里面返回布尔值
Stream<T> filter(Predicate<? super T> predicate)
forEach:里面传入Consumer消费型函数,有请求参数和无返回值
void forEach(Consumer<? super T> action)
map:里面传入Function函数式 有请求参数和返回值
<R> Stream<R> map(Function<? super T,? extends R> mapper)
generate:里面传入Supplier供给型函数 无请求参数和有返回值
static <T> Stream<T> generate(Supplier<T> s)
待更。