实习笔记-Stream流
一、Stream流
现有一个需求:
- 将list集合中姓张的元素过滤到一个新的集合中;
- 然后将过滤出来的姓张的元素中,再过滤出来长度为3的元素,存储到一个新的集合中;
1.1 常规方法
1 | // 已知的知识来解决需求 |
1.2 Stream流方式
1 | list1.stream() |
二、获取流
2.1 根据List获取流
1 | // 创建List集合 |
2.2 根据Set获取流
1 | // 创建List集合 |
2.3 根据Map获取流
1 | // 创建Map集合 |
2.3.1 根据key获取
1 | Set<Integer> map1 = map.keySet(); |
2.3.2 根据value获取
1 | Collection<String> map2 = map.values(); |
2.3.3 根据k-v获取
1 | Set<Map.Entry<Integer, String>> map3 = map.entrySet(); |
2.4 根据数组获取流
1 | // 根据数组获取流 |
三、常用方法
方法名称 | 方法作用 | 方法种类 | 是否支持链式调用 |
---|---|---|---|
count | 统计个数 | 终结方法 | 否 |
forEach | 逐一处理 | 终结方法 | 否 |
filter | 过滤 | 函数拼接 | 是 |
limit | 取用前几个 | 函数拼接 | 是 |
skip | 跳过前几个 | 函数拼接 | 是 |
map | 映射 | 函数拼接 | 是 |
concat | 组合 | 函数拼接 | 是 |
四、收集流
把流中的数据收集到单例集合中
1 | List<String> list2 = new ArrayList<>(); |