public static void main(String[] args) {
Person p1 = new Person("zhangsan",20);Person p2 = new Person("lisi",30);Person p3 = new Person("wangwu",40);Person p4 = new Person("赵六",40);List<Person> list = Arrays.asList(p1, p2, p3, p4);System.out.println("获取流中所有元素");List<Person> collect = list.stream().collect(Collectors.toList());collect.forEach(System.out::println);//收集统计数据的对象 例如 最大最小平均总和 这个对象只返回数据 不返回对象 例如最小:返回20 而不是这个personIntSummaryStatistics intSummaryStatistics = list.stream().collect(Collectors.summarizingInt(Person::getAge));System.out.println("-----------------------------");System.out.println("统计流中元素个数");System.out.println("方式一stream.count() : " + list.stream().count());System.out.println("方式二stream.collect(Collectors.counting()): " + list.stream().collect(Collectors.counting()));System.out.println("方式三:" + intSummaryStatistics.getCount());System.out.println("-------------------");System.out.println("获取流中 年龄最小的元素");System.out.print("获取最小方式一:");list.stream().collect(Collectors.minBy(Comparator.comparingInt(Person::getAge))).ifPresent(System.out::println);System.out.println("获取最小方式二:" + intSummaryStatistics.getMin());System.out.println("-------------------");System.out.println("获取流中 年龄最大的元素");System.out.print("获取最大方式一:");list.stream().collect(Collectors.maxBy(Comparator.comparingInt(Person::getAge))).ifPresent(System.out::println);System.out.println("获取最大方式二:" + intSummaryStatistics.getMax());System.out.println("-------------------");//年龄平均数Double average = list.stream().collect(Collectors.averagingInt(Person::getAge));System.out.println("平均年龄方式一:" + average);System.out.println("平均年龄方式二:" + intSummaryStatistics.getAverage());System.out.println("-------------------");System.out.println("年龄总和方式一:" + intSummaryStatistics.getSum());Integer sum = list.stream().collect(Collectors.summingInt(Person::getAge));System.out.println("年龄总和方式二:" + sum);System.out.println("-------------------");System.out.println("拼接所有人的性名");String personNames = list.stream().map(Person::getName).collect(Collectors.joining(" "));System.out.println("所有人的性名:" + personNames);System.out.println("-------------------");System.out.println("一级分组");System.out.println("根据年龄分组");Map<Integer, List<Person>> map = list.stream().collect(Collectors.groupingBy(Person::getAge));System.out.println(map);System.out.println("二级分组 先根据年龄分组 在根据xing'm'z");Map<Integer, Map<String, List<Person>>> mapMap = list.stream().collect(Collectors.groupingBy(Person::getAge, Collectors.groupingBy(Person::getName)));System.out.println(mapMap);System.out.println("-------------------");System.out.println("分区 <30 , >=30");Map<Boolean, List<Person>> listMap = list.stream().collect(Collectors.partitioningBy(person -> person.getAge() < 30));System.out.println(listMap);System.out.println("-------------------");System.out.println("分区 <30 , >=30 后 >=30 这个分区再次分区 =30 和 >30");Map<Boolean, Map<Boolean, List<Person>>> map1 = list.stream().collect(Collectors.partitioningBy(person -> person.getAge() >= 30,Collectors.partitioningBy(person -> person.getAge() == 30)));System.out.println(map1);System.out.println("--------------");System.out.println("分区后统计数量");Map<Boolean, Long> map2 = list.stream().collect(Collectors.partitioningBy(person -> person.getAge() < 30, Collectors.counting()));System.out.println(map2);}
详细解决方案
Stream.Collect 收集器的使用案例
热度:60 发布时间:2023-12-12 04:46:04.0
相关解决方案
- 怎样用android重写j2me,player里的createPlayer(InputStream stream, String type)解决方案
- 新手求教,下面代码会报 invalid stream header错误,让小弟我很头疼,不知道什么原因
- 在Java核心技术卷一遇到的一个文件输入有关问题,书中的源码如上,但在Scanner in = new Scanner(stream)处初始化出错,请各位帮忙看看
- 求:ashx 输出上载文件 type为application/octet-stream flash能直接播放
- 请教:怎么把image字段转成System.Io.Stream stream呢
- XmlTextWriter(stream, Encoding)的时候stream始终为空,大家帮忙看看。解决办法
- 一个bulk collect into的简单有关问题
- PL/SQL批处理话语:BULK COLLECT 和 FORALL对优化的贡献
- HTTP Streaming protocol 中的$E (End-of-Stream Notification) Packet是如何写的哪位高手知道吗
- 用java类生成sql语句的时候...问题来了.STREAM DATA
- 上传图片出现ADODB.Stream 异常 '800a0bbc'
- Illegal attempt to 地图 a non collection as a @OneToMany, @ManyToMany or @Collect
- ADODB.Stream 异常 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突
- ADODB.Stream (0x800A0BBC)写入文件失败。解决思路
- xheditor-文件下传-java-支持html5-application/octet-stream
- adodb.stream 实现上传有关问题!
- 请问:failed to open stream: Permission denied in Unknown on line 0
- 关于failed to open stream: No error的异常
- failed to open stream: Permission denied 这个异常如何解决
- 在struts2中使用result里type="stream"的结果类型时 错误
- Nginx-Push-Stream-Model(基于Comet跟PHP的WebIM实现,Android推送)
- unexpected end of token stream The last token was: </mx:Label>
- invalid stream header有关问题的解决
- java.lang.NoClassDefFoundError: com.google.gson.stream.JsonReader异常解决办法
- 使用XStream是实现XML与Java对象的变换(5)-Object Stream
- Struts下使用type="stream"配置action,文件下载时报错getOutputStream() has already been called解决方案
- java.io.IOException: Stream closed 出错
- reading encoded JPEG Stream ?()
- 困扰了小弟我一星期,是关于struts2<result name="success" type="stream"> 用ajax方式调用下载的
- org.htmlparser.util.ParserException: reset stream failed