流的简单实用
流
1. 获取流
-
所有的
Collection集合都可以通过Stream默认方法获取流。 -
Stream接口的静态方法of可以获取数组对应的流。 -
注意:map转换为Stream流需要先分别把键值放进集合再转换成流。
Map<String,String> map = new HashMap<>();
Set<String> KeySet = map.keySet();
Stream<String> stream1 = KeySet.stream();
Collection<String> values = map.values();
Stream<String> stream2 = values.stream();
Set<Map.Entry<String,String>> entries = map.entrySet();
Stream<Map.Entry<String,String>> stream4 = entries.stream();
2. 常用方法
-
延迟方法:不立即执行得到结果;返回值是
stream接口类型的方法,支持链式调用,是stream接口的抽象方法。 -
终结方法:立即执行得到结果;返回值不是
stream接口类型的方法,不支持链式调用,是stream接口的抽象方法。- 其包括:
count和foreach方法。 - 注意:stream中除了终结方法就是延迟方法。
![]()
- 其包括:
-
filter方法:过滤,通过filter方法将一个流转换成另一个子集流。(接收Predicate接口,可以用lambda简化)![]()
-
map方法:映射,将一个流中元素映射到另一个流中。(接收Function方法,需要一个Function函数式接口参数,可以将T类型转换为R类型的流。)

-
skip方法:跳过,希望跳几个元素就写几;因为第一个的索引是1不是0.(如果流的长度大于n,则会得到长 度为0的空流。) -
count方法:统计,此方法是终结方法。 -
foreach方法:遍历,和增强for不同。(foreach方法接收Consumer接口,可以用lambda表达式简化。) -
limit方法:截取,对流进行截取,只用前n个。(数据类型是long类型)

concat方法:合并,将两个流的数据合并。(这是stream流的静态方法,不包含在延迟方法和终结方法范围内)



浙公网安备 33010602011771号