JDK8新特性——Stream API
摘要:本文主要学习了JDK8的新特性中有关Stream API的使用。
部分内容来自以下博客:
https://blog.csdn.net/icarusliu/article/details/79495534
概述
Stream API(java.util.stream)把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。
Stream是JDK8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。也可以使用Stream API来并行执行操作。简言之,Stream API提供了一种高效且易于使用的处理数据的方式。
创建
创建空的Stream对象
1 Stream stream = Stream.empty();
通过集合类中的stream()方法或者parallelStream()方法创建
1 List list = Arrays.asList("a", "b", "c", "d");2 Stream stream = list.stream();//获取串行的Stream对象
3 Stream parallelStream = list.parallelStream();//获取并行的Stream对象
通过数组工具类Arrays的stream()方法创建
1 String[] arr = {"a", "b", "c", "d"};2 Stream stream = Arrays.stream(arr);
通过Stream中的of()方法创建
1 Stream stream = Stream.of("test");2 Stream stream = Stream.of("a", "b", "c");
通过Stream中的iterate()方法创建有序的Stream
1 public static Stream iterate(final T seed, final UnaryOperator f);
通过Stream中的generate()方法创建无序的Stream
1 public static Stream generate(Supplier s);
使用
Stream对象提供多个非常有用的方法,这些方法可以分成两类:
中间操作:将原始的Stream转换成另外一个Stream,如filter返回的是过滤后的Stream。
终端操作:产生的是一个结果或者其它的复合操作,如count或者forEach操作。
未完待补充……