Stream流的收集操作
概念
对数据使用Stream流的方式操作完毕后,可以把流中的数据收集到集合中。
常用方法
方法名 说明 R collect(Collector collector) 把结果收集到集合中 工具类Collectors提供了具体的收集方式
方法名 说明 public static <T> Collector toList() 把元素收集到List集合中 public static <T> Collector toSet() 把元素收集到Set集合中 public static Collector toMap(Function keyMapper,Function valueMapper) 把元素收集到Map集合中 代码演示
public class CollectDemo {public static void main(String[] args) {//创建List集合对象List<String> list = new ArrayList<String>();list.add("林青霞");list.add("张曼玉");list.add("王祖贤");list.add("柳岩");/*//需求1:得到名字为3个字的流Stream<String> listStream = list.stream().filter(s -> s.length() == 3);//需求2:把使用Stream流操作完毕的数据收集到List集合中并遍历List<String> names = listStream.collect(Collectors.toList());for(String name : names) {System.out.println(name);}*///创建Set集合对象Set<Integer> set = new HashSet<Integer>();set.add(10);set.add(20);set.add(30);set.add(33);set.add(35);/*//需求3:得到年龄大于25的流Stream<Integer> setStream = set.stream().filter(age -> age > 25);//需求4:把使用Stream流操作完毕的数据收集到Set集合中并遍历Set<Integer> ages = setStream.collect(Collectors.toSet());for(Integer age : ages) {System.out.println(age);}*///定义一个字符串数组,每一个字符串数据由姓名数据和年龄数据组合而成String[] strArray = {"林青霞,30", "张曼玉,35", "王祖贤,33", "柳岩,25"};//需求5:得到字符串中年龄数据大于28的流Stream<String> arrayStream = Stream.of(strArray).filter(s -> Integer.parseInt(s.split(",")[1]) > 28);//需求6:把使用Stream流操作完毕的数据收集到Map集合中并遍历,字符串中的姓名作键,年龄作值Map<String, Integer> map = arrayStream.collect(Collectors.toMap(s -> s.split(",")[0], s -> Integer.parseInt(s.split(",")[1])));Set<String> keySet = map.keySet();for (String key : keySet) {Integer value = map.get(key);System.out.println(key + "," + value);}}
}
Stream流的收集操作相关推荐
- Java中的Stream流以及收集操作
一.Stream流的生成方式 1.Stream流的使用: <1>:生成流:通过数据源(集合.数组等)生成流 <2>:中间操作:一个流后面可以跟随零个或多个中间操作,其目的主要是 ...
- [Java基础]Stream流的收集操作
代码如下: package CollectPack;import java.util.*; import java.util.stream.Collectors; import java.util.s ...
- java 合并流_Java Stream 流实现合并操作示例
本文实例讲述了Java Stream 流实现合并操作.分享给大家供大家参考,具体如下: 1. 前言 Java Stream Api提供了很多有用的 Api 让我们很方便将集合或者多个同类型的元素转换为 ...
- Java中Stream流的中间操作步骤
Stream流的中间操作 前提 public static List<Emploeer> getEmploer(){List<Emploeer> list = new Arra ...
- JDK1.8 升级这么久!Stream 流的规约操作有哪些?
前段时间介绍了部分 Stream常见接口方法,理解起来并不困难,但Stream的用法不止于此,本节我们将仍然以Stream为例,介绍流的规约操作. 规约操作又被称作折叠操作,是通过某个连接动作将所 ...
- Java 8 Stream流的常见操作
Stream流的使用 在 Java 8 中, 集合接口有两个方法来生成流: stream() − 为集合创建串行流.parallelStream() − 为集合创建并行流. 串行流 如果是数组的话,可 ...
- Java8中Stream流对集合操作
java8中Stream流引入函数式编程思想,主要配合各种接口.lambda表达式.方法引用等方式,为集合的遍历.过滤.映射等提供非常"优雅"的操作方式. Student.java ...
- java8新特性 Stream流的优雅操作
1. 使用传统的方式,遍历集合,对集合中的数据进行过滤 //创建一个List集合,存储姓名List<String> list = new ArrayList<>();list. ...
- Java8新特性stream流的优雅操作
文章目录 原因是因为我管理的小组提交代码被我review到了,发现只有个别同学使用到了stream流,所以出此blog,希望大家都写出优雅的代码 原因是因为我管理的小组提交代码被我review到了,发 ...
最新文章
- 腾讯云物联网平台产品全面升级,全新生态运营策略构建消费电子智能生态
- one方法报错 select_【总结】Pandas DataFrame 使用方法
- [转载] 对称加密与非对称加密
- 开发日记-20190405
- Spring 基于xml配置方式的AOP
- 三个箭头循环标志_沧州交通标志杆直销
- C++STL的stack容器
- 全国计算机等级考试 备考,全国计算机等级考试经验:如何调整备考心态
- Android开发之设置Dialog外部页透明的方法亲测可用
- json类的解析,调试实例
- Win10 + Python + MXNet + VS2015配置
- android readonly file system,安卓ROOT权限下“Read-only file sytem”解决办法
- 7、Java格式注意要点
- java 多线程操作List,已经做了同步synchronized,还会有ConcurrentModificationException,知道为什么吗?...
- 法斗几个月长鼻筋_带锯罢工了,木工小哥检查问题出在哪里?分享带锯使用九个月感受...
- Tomcat8安装步骤-win10-64位系统
- 1.6 Image Rotation
- centos 下载文件很慢_百度云盘上传文件和下载文件慢的解决办法
- cannot find -lxxx
- 随心测试_Python Se_005鼠标悬停操作