JDK8 有关集合部分常用的语法
2019独角兽企业重金招聘Python工程师标准>>>
JDK8集合部分相关语法
1.List转map
1.1 构造参数
ArrayList<ProductReturnDetailResult> productReturnDetailResults = new ArrayList<>();//退货结果ProductReturnDetailResult returnDetailResult = new ProductReturnDetailResult();returnDetailResult.setMsg("该订单状态更新成功!");returnDetailResult.setProductNo(productSerialNos);returnDetailResult.setStatus(true);productReturnDetailResults.add(returnDetailResult);
1.2 使用
Map<Boolean, ProductReturnDetailResult> productResult = productReturnDetailResults.stream().collect(Collectors.toMap(ProductReturnDetailResult::isStatus,detailResult -> detailResult, (oldDetail, newDetail) -> newDetail));
1.3 使用说明
该段代码的含义是:以isStatus(boolean)的值作为key,value使用ProductReturnDetailResult,如果key相同 那么使用新的覆盖原来的value.
2.排序
List<Integer> list1 = Arrays.asList(1, 3, 2, 5, 4);Collections.sort(list1,(o1,o2)->o1-o2);//升序Collections.sort(list1,(o1,o2)->o2-o1);//降序
3.for循环
ArrayList<SupplierOrder> supplierOrders = new ArrayList<>();SupplierOrder supplierOrder = new SupplierOrder();supplierOrder.setSupplyOrderNo("9999");supplierOrder.setComment("test");supplierOrders.add(supplierOrder);supplierOrders.forEach(order -> {System.out.println(order.getSupplyOrderNo());System.out.println(order.getComment());});
4.filter(保留)
ArrayList<SupplierOrder> supplierOrders = new ArrayList<>();SupplierOrder supplierOrder = new SupplierOrder();supplierOrder.setSupplyOrderNo("9999");supplierOrder.setComment("test");supplierOrders.add(supplierOrder);SupplierOrder supplierOrder1 = new SupplierOrder();supplierOrder1.setSupplyOrderNo("9998");supplierOrder1.setComment("test");supplierOrders.add(supplierOrder1);List<SupplierOrder> newOrder = supplierOrders.stream().filter(order -> order.getSupplyOrderNo().contains("9998")).collect(Collectors.toList());System.out.println(JSON.toJSONString(newOrder));
PS: filter理解成保留的意思不要理解成过滤,该结果输出为:[{"comment":"test","supplyOrderNo":"9998"}]
5.取出List中对象中的某一个字段作为一个集合
List<MerchantInvitation> merchantInvitations = new ArrayList<>();List<Integer> merchantIds = merchantInvitations.stream().map(MerchantInvitation::getMerchantId).collect(Collectors.toList());
6.计算数值返回整形
List<InvitationStatisticsResult> list = new ArrayList<>();
int invitationCountSum = list.stream().mapToInt(InvitationStatisticsResult::getInvitationCount).sum();
或者
List<InvitationStatistics> temp = new ArrayList<>();InvitationStatistics t = new InvitationStatistics();t.setInvitationCount(2);InvitationStatistics t1 = new InvitationStatistics();t1.setInvitationCount(2);temp.add(t);temp.add(t1);Integer collect = temp.stream().collect(Collectors.summingInt(InvitationStatistics::getInvitationCount));
7.计算BigDecimal
List<InvitationStatisticsResult> list = new ArrayList<>();
BigDecimal transactionAmountSum = list.stream().map(InvitationStatisticsResult::getTransactionAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
8.连接字符串
List<InvitationStatistics> temp = new ArrayList<>();InvitationStatistics t = new InvitationStatistics();t.setMerchantName("test1");InvitationStatistics t1 = new InvitationStatistics();t1.setMerchantName("test2");temp.add(t);temp.add(t1);String collect = temp.stream().map(InvitationStatistics::getMerchantName).collect(Collectors.joining("-"));System.out.println(collect);
9.获取最大值
List<InvitationStatistics> temp = new ArrayList<>();InvitationStatistics t = new InvitationStatistics();t.setInvitationCount(2);InvitationStatistics t1 = new InvitationStatistics();t1.setInvitationCount(3);temp.add(t);temp.add(t1);Optional<InvitationStatistics> collect = temp.stream().collect(Collectors.maxBy(Comparator.comparingInt(InvitationStatistics::getInvitationCount)));System.out.println(JSON.toJSONString(collect));
10.获取最小值
List<InvitationStatistics> temp = new ArrayList<>();InvitationStatistics t = new InvitationStatistics();t.setInvitationCount(2);InvitationStatistics t1 = new InvitationStatistics();t1.setInvitationCount(3);temp.add(t);temp.add(t1);Optional<InvitationStatistics> collect = temp.stream().collect(Collectors.minBy(Comparator.comparingInt(InvitationStatistics::getInvitationCount)));System.out.println(JSON.toJSONString(collect));
11.分组
Map<Integer, List<SupplierOrder>> supplierOrderGroupBy = supplierOrders.stream().collect(Collectors.groupingBy(SupplierOrder::getMerchantId));//根据卖家id进行分组
12.排序
List<InvitationRecordModel> result2 = invitationRecordModels.stream().filter(record -> record.getIsCreateOrder().equals(Const.MERCHANT_IS_CREATE_ORDER_FALSE)).collect(Collectors.toList());Collections.sort(result2,Comparator.comparing(InvitationRecordModel::getCreateDt).reversed());
转载于:https://my.oschina.net/nixi0608/blog/1820006
JDK8 有关集合部分常用的语法相关推荐
- grep的常用命令语法
grep的常用命令语法 1. 双引号引用和单引号引用 在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:"m y s t r i n g".这样做有两个原因,一 ...
- mysql+group+desc_lt;导图gt;Mysql常用查询语法
普通查询 查看整个表格式:select * from 表名; 示例:select * from students; 查询指定字段格式select 字段名1,字段名2 from 表名; 示例select ...
- 【自用】【持续更新】LaTeX常用基础语法大全
目录 LaTeX常用基础语法大全 段落 居中 排序列表 文本.变量 加粗 斜体 向量(顶有向量箭头→) 估计(顶有尖头hat) 平均(顶有横线) 顶有波浪号~ 24个希腊字母 花体.集合手写体 大型运 ...
- Markdown的一些常用的语法
Markdown的一些常用的语法 (1) 添加目录 和 标题 (2) 添加分隔线 (3) 添加超链接 (4) 标记文本 (5) 设置文字的字体颜色 (6) 给文字添加背景色 (7) 添加代码块 (8) ...
- Magento模型集合addFieldToFilter常用过滤条件
下载: 深入理解Magento.pdf 记录一下Magento模型集合Model Collection中addFieldToFilter()方法常用的过滤条件.以下参数也同样适用于产品实体的addAt ...
- Python中集合的常用操作
一.集合的介绍 1.定义:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重. 2.特性:集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的单个值. ...
- 【FOFA】fofa搜索引擎的常用搜索语法
fofa搜索引擎的常用搜索语法 前言 这里附一下网址链接: fofa,直接注册一个用户,登录搜索即可. 登录界面如下图,其中红笔框出的查询语法已经挺详细的,本篇博客就其中几个常用的语法进行实践操作. ...
- 高中数学补习:集合与常用逻辑用语
高中数学补习:集合与常用逻辑用语(有电子完整版)私信领取. 今天高中数学补习:集合与常用逻辑用语分享就到这里了,关注高中数学肖博老师为大家分享更多高中数学知识点和视频教程.
- .md 基本常用编写语法
.md文件基本常用编写语法 1.标题 第一种: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 ...
- java创建集合_java创建集合的常用格式
创建集合的常用格式: 导包:import java.util.ArrayList; 创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型: ArrayList 变量名 = ...
最新文章
- 探访日本滨松光子:“光”如何加速汽车行业进入智能汽车时代
- 第二周Access总结
- [20171109]缓存命中率神话.txt
- 解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly
- Oracle-11g-R2 RAC 环境下 GPnP Profile 文件
- 【GPU】nvidia-smi输出内容释义及使用
- python计时器程序设计总框图_怎么用python编写计时器?这个编程的方法你一定不要错过...
- cannot+connect+mysql_mysqlnd cannot connect to MySQL 4.1+ using the old insecure
- FISCO BCOS Webase front 智能合约 参数不合适
- [C# 开发技巧]实现属于自己的截图工具
- Photoshop 2021神经滤镜Neural Filters离线安装包下载 WIN / MAC(适用于PS 2021版本22.3.X/22.4.X)
- Delphi时间戳Unix转换DateTimeToUnix和UnixToDateTime
- kron matlab_使用kron来实现repmat, repelem的功能
- LaTeX 换行、换页、空白空间
- 目标群体是什么意思_什么是目标客户群体?求解
- 【ITSM】什么是ITSM,IT部门为什么需要ITSM
- Histromap of World History: The rise and fall of peoples and notions for 4000 years
- contour 函数详解
- std__vector介绍
- python不是内部文件别太任性_Python对文件的操作
热门文章
- idea新建一个java项目_创建第一个Java项目(Create First Java Project)
- matlab两张图片合成一张_MATLAB|多个Figure图按子图合成一个Figure
- c# mysql清理_C# 中清空sql数据库中的数据
- python网络开发框架_宿迁python网站开发框架收费
- ai/ml_您应该在本周(7月18日)阅读有趣的AI / ML文章
- 如何识别媒体偏见_面部识别技术存在偏见:为什么我们不应该盲目相信新技术
- 通用逼近定理证明_通用逼近定理:代码证明
- centos7 redis 重启_linux下redis启动/关闭/重启服务配置
- C# string.Format json格式字符串报错”输入字符串的格式不正确“
- JS基础知识 --变量类型和计算