第一步:生成操作
Stream流生成的方式有以下几种,它是后续操作的基石。
Collection体系集合
使用默认方法stream()生成流, default Stream stream()
Map体系集合
把Map转成Set集合,间接的生成流
数组
通过Stream接口的静态方法of(T… values)生成流
第二步:中间操作
概念
中间操作的意思是,执行完此方法之后,Stream流依然可以继续执行其他操作。
常见方法
Stream filter(Predicate predicate) :用于对流中的数据进行过滤
Stream limit(long maxSize): 返回此流中的元素组成的流,截取前指定参数个数的数据
Stream skip(long n): 跳过指定参数个数的数据,返回由该流的剩余元素组成的流
static Stream concat(Stream a, Streamb):合并a和b两个流为一个流
Stream distinct(): 返回由该流的不同元素(根据Object.equals(Object) )组成的流
Stream sorted(): 返回由此流的元素组成的流,根据自然顺序排序
Stream sorted(Comparatorcomparator):返回由该流的元素组成的流,根据提供的Comparator进行排序
Stream map(Function mapper): 返回由给定函数应用于此流的元素的结果组成的流
IntStream mapToInt(ToIntFunctionmapper):返回一个IntStream其中包含将给定函数应用于此流的元素的结果
第三步:终结操作
概念
终结操作的意思是,执行完此方法之后,Stream流将不能再执行其他操作。
常见方法
void forEach(Consumer action): 对此流的每个元素执行操作
long count(): 返回此流中的元素数
anyMatch、allMatch、noneMatch:判断流中的元素是否满足指定的条件。
第四步:收集操作
概念
对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中。
常用方法
R collect(Collector collector) 把结果收集到集合中
工具类Collectors提供了具体的收集方式
public static Collector toList() 把元素收集到List集合中
public static Collector toSet() 把元素收集到Set集合中
**public static Collector toMap(Function keyMapper,FunctionvalueMapper)**把元素收集到Map集合中
注意
终结操作和收集操作后,会关闭流,不能继续操作。