/***@authorindex

* @date 2020/10/27

**/

public classTestcollectingAndThen {

@Testpublic voidtest(){final int NUM = 14;

List peopleList = new ArrayList<>(NUM);

String[] names= {"小张", "小龙", "小牛", "小猪", "小黑", "小红", "小白"};for (int i = 0; i < 5; i++) {//添加5个19岁的随机性别和名字的小朋友

peopleList.add(new People(19, (int) (Math.random() * 2), names[(int) (Math.random() *names.length)]));

}for (int i = 5; i < 8; i++) {//添加3个31岁的随机性别和名字的小朋友

peopleList.add(new People(31, (int) (Math.random() * 2), names[(int) (Math.random() *names.length)]));

}for (int i = 8; i < NUM; i++) {//添加6个22岁的随机性别和名字的小朋友

peopleList.add(new People(22, (int) (Math.random() * 2), names[(int) (Math.random() *names.length)]));

}//collectingAndThen先对stream里的元素进行collecting,之后再对结果进行操作,//下面的结果是一个map,对map计算元素数目

System.out.println("分组数目:");

Integer groupCount=peopleList.stream().collect(

Collectors.collectingAndThen(Collectors.groupingBy(People::getName), Map::size));

System.out.println(groupCount);

System.out.println("-------------------------------------");//按照名字分组

System.out.println("按照名字分组");

System.out.println(

peopleList.stream().collect(Collectors.groupingBy(People::getName))

);

System.out.println("-------------------------------------");//按照名字分组(分组的结果是一个map),并统计每一个分组(map中的每一个value)中的元素数目

System.out.println("统计每一个分组(map中的每一个value)中的元素数目");

System.out.println(

peopleList.stream().collect(Collectors.groupingBy(People::getName, Collectors.counting()))

);

System.out.println("-------------------------------------");//按照名字分组(分组的结果是一个map),并取出每一组的最大值

System.out.println("取出每一组的最大值");

System.out.println(

peopleList.stream().collect(Collectors.groupingBy(People::getName, Collectors.maxBy(new Comparator() {

@Overridepublic intcompare(People o1, People o2) {return o1.getAge() -o2.getAge();

}

})))

);

}

}

java8 stream index_Java8的stream用法整理相关推荐

  1. Java8新特性之stream的详细用法

    一.概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作.使用Stream API 对集合数据进行操作,就类似于 ...

  2. Java8的 Stream 流的各种用法

    Java8 的 Stream 流的各种用法 什么是Stream 1. Stream可以由数组或集合创建,对流的操作分为两种 2. Stream的特性 3. Stream可以通过集合数组创建 4. st ...

  3. Java8 Stream 语法详解 用法实例

    本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A ...

  4. java8 stream index_Java8 Stream基本使用

    1. 什么是Stream Stream是一个数据处理接口,本身不存储任何数据.大概有20多个方法,每个都很好用,并且含有函数式编程里的filter,map,reduce方法.Stream的数据有三个来 ...

  5. Java8 stream流式表达式用法

    一.stream 介绍(抄录一波) Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象. Stream API可以极大提高Java程序 ...

  6. java8 .stream().map().collect() 的用法

    API: https://www.runoob.com/java/java8-streams.html mylist.stream().map(myfunction->{return item; ...

  7. Java8新特性之Stream流式编程

    特地感谢鲁班大叔的分享,原学习地址:Java8 Stream流式编程爱 撸码就是快,流式编程好 代码传家宝 以下是学习过程整理的笔记 1.简介 Stream 流处理,首先要澄清的是 java8 中的 ...

  8. 【java8新特性】——Stream API详解(二)

    一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...

  9. Java8函数式编程、Stream流、Option的使用,一篇足够了

    为什么要学 大数量下处理集合效率高 代码可读性高 消灭嵌套地狱 // 查询未成年作家的评分在70以上的书籍 List<Book> bookList = new ArrayList<& ...

最新文章

  1. 构造 HDOJ 5400 Arithmetic Sequence
  2. python绘制条形图-Python数据分析条形图的各种绘制方式
  3. Object.defineProperty方法
  4. 将多个Celery定时任务添加到Systemd
  5. 顺序程序设计02 - 零基础入门学习C语言08
  6. StratoVirt在x86_64下的初体验
  7. find5 android 4.3,OPPO Find 7的手机系统是什么?能升级安卓4.3吗?
  8. 函数防抖debounce和节流throttle
  9. 智能情绪分析技术_高新技术改造传统企业,智能化解决粘度分析行业
  10. 关于E-R(实体-联系)图
  11. 【稳定性day7】mPaaS - 蚂蚁金服高可用的产品化之路
  12. 移植linux内核串口配置,uClinux内核的移植 - bootloader对uClinux的S3C44B0移植
  13. 图神经网络详解(四)
  14. 常犇_专访丨《河神》制片人常犇:走夜路不怕黑,做好剧别怕累
  15. 米家APP获取小米、绿米网关key的方法(5.6.81版本)(2020_05_15)
  16. 小米便签开源项目本地环境搭建
  17. 软件工程Alpha冲刺day2
  18. 分享和推广产品是成功淘宝客的技巧
  19. 换主板、换硬件、换平台而不重装系统
  20. halcon 缺陷检测 划伤检测

热门文章

  1. CSDN云计算是什么?云计算可以应用在哪些方面?
  2. 详解云计算、大数据和人工智能的区别与联系
  3. java 最大矩形_Java实现 LeetCode 85 最大矩形
  4. Linux7/Redhat7/Centos7 安装Oracle 12C_系统安装_01
  5. GitLab 添加组员到指定小组
  6. 第13篇: Flowable-BPMN操作流程之流程进展查看之流程图
  7. 两个分布的特征映射_跨语言分布表示学习方法概述
  8. oracle查询删除时间戳,Oracle查询时间戳,建表时间,新建序列,误删数据
  9. 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
  10. 其他机器无法访问php,PHP 局域网其他机器无法访问的问题