java8 stream index_Java8的stream用法整理
/***@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用法整理相关推荐
- Java8新特性之stream的详细用法
一.概述 Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找.过滤和映射数据等操作.使用Stream API 对集合数据进行操作,就类似于 ...
- Java8的 Stream 流的各种用法
Java8 的 Stream 流的各种用法 什么是Stream 1. Stream可以由数组或集合创建,对流的操作分为两种 2. Stream的特性 3. Stream可以通过集合数组创建 4. st ...
- Java8 Stream 语法详解 用法实例
本文将会详细讲解Stream的使用方法(不会涉及Stream的原理,因为这个系列的文章还是一个快速学习如何使用的). 1. Stream初体验 我们先来看看Java里面是怎么定义Stream的: A ...
- java8 stream index_Java8 Stream基本使用
1. 什么是Stream Stream是一个数据处理接口,本身不存储任何数据.大概有20多个方法,每个都很好用,并且含有函数式编程里的filter,map,reduce方法.Stream的数据有三个来 ...
- Java8 stream流式表达式用法
一.stream 介绍(抄录一波) Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象. Stream API可以极大提高Java程序 ...
- java8 .stream().map().collect() 的用法
API: https://www.runoob.com/java/java8-streams.html mylist.stream().map(myfunction->{return item; ...
- Java8新特性之Stream流式编程
特地感谢鲁班大叔的分享,原学习地址:Java8 Stream流式编程爱 撸码就是快,流式编程好 代码传家宝 以下是学习过程整理的笔记 1.简介 Stream 流处理,首先要澄清的是 java8 中的 ...
- 【java8新特性】——Stream API详解(二)
一.简介 java8新添加了一个特性:流Stream.Stream让开发者能够以一种声明的方式处理数据源(集合.数组等),它专注于对数据源进行各种高效的聚合操作(aggregate operation ...
- Java8函数式编程、Stream流、Option的使用,一篇足够了
为什么要学 大数量下处理集合效率高 代码可读性高 消灭嵌套地狱 // 查询未成年作家的评分在70以上的书籍 List<Book> bookList = new ArrayList<& ...
最新文章
- 构造 HDOJ 5400 Arithmetic Sequence
- python绘制条形图-Python数据分析条形图的各种绘制方式
- Object.defineProperty方法
- 将多个Celery定时任务添加到Systemd
- 顺序程序设计02 - 零基础入门学习C语言08
- StratoVirt在x86_64下的初体验
- find5 android 4.3,OPPO Find 7的手机系统是什么?能升级安卓4.3吗?
- 函数防抖debounce和节流throttle
- 智能情绪分析技术_高新技术改造传统企业,智能化解决粘度分析行业
- 关于E-R(实体-联系)图
- 【稳定性day7】mPaaS - 蚂蚁金服高可用的产品化之路
- 移植linux内核串口配置,uClinux内核的移植 - bootloader对uClinux的S3C44B0移植
- 图神经网络详解(四)
- 常犇_专访丨《河神》制片人常犇:走夜路不怕黑,做好剧别怕累
- 米家APP获取小米、绿米网关key的方法(5.6.81版本)(2020_05_15)
- 小米便签开源项目本地环境搭建
- 软件工程Alpha冲刺day2
- 分享和推广产品是成功淘宝客的技巧
- 换主板、换硬件、换平台而不重装系统
- halcon 缺陷检测 划伤检测
热门文章
- CSDN云计算是什么?云计算可以应用在哪些方面?
- 详解云计算、大数据和人工智能的区别与联系
- java 最大矩形_Java实现 LeetCode 85 最大矩形
- Linux7/Redhat7/Centos7 安装Oracle 12C_系统安装_01
- GitLab 添加组员到指定小组
- 第13篇: Flowable-BPMN操作流程之流程进展查看之流程图
- 两个分布的特征映射_跨语言分布表示学习方法概述
- oracle查询删除时间戳,Oracle查询时间戳,建表时间,新建序列,误删数据
- 去掉数组最后一个元素_leetcode 34. 在排序数组中查找元素的第一个和最后一个位置每天刷一道leetcode算法系列!...
- 其他机器无法访问php,PHP 局域网其他机器无法访问的问题