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 有关集合部分常用的语法相关推荐

  1. grep的常用命令语法

    grep的常用命令语法 1. 双引号引用和单引号引用 在g r e p命令中输入字符串参数时,最好将其用双引号括起来.例如:"m y s t r i n g".这样做有两个原因,一 ...

  2. mysql+group+desc_lt;导图gt;Mysql常用查询语法

    普通查询 查看整个表格式:select * from 表名; 示例:select * from students; 查询指定字段格式select 字段名1,字段名2 from 表名; 示例select ...

  3. 【自用】【持续更新】LaTeX常用基础语法大全

    目录 LaTeX常用基础语法大全 段落 居中 排序列表 文本.变量 加粗 斜体 向量(顶有向量箭头→) 估计(顶有尖头hat) 平均(顶有横线) 顶有波浪号~ 24个希腊字母 花体.集合手写体 大型运 ...

  4. Markdown的一些常用的语法

    Markdown的一些常用的语法 (1) 添加目录 和 标题 (2) 添加分隔线 (3) 添加超链接 (4) 标记文本 (5) 设置文字的字体颜色 (6) 给文字添加背景色 (7) 添加代码块 (8) ...

  5. Magento模型集合addFieldToFilter常用过滤条件

    下载: 深入理解Magento.pdf 记录一下Magento模型集合Model Collection中addFieldToFilter()方法常用的过滤条件.以下参数也同样适用于产品实体的addAt ...

  6. Python中集合的常用操作

    一.集合的介绍 1.定义:集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重. 2.特性:集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无须纠结于集合中的单个值. ...

  7. 【FOFA】fofa搜索引擎的常用搜索语法

    fofa搜索引擎的常用搜索语法 前言 这里附一下网址链接: fofa,直接注册一个用户,登录搜索即可. 登录界面如下图,其中红笔框出的查询语法已经挺详细的,本篇博客就其中几个常用的语法进行实践操作. ...

  8. 高中数学补习:集合与常用逻辑用语

    高中数学补习:集合与常用逻辑用语(有电子完整版)私信领取. 今天高中数学补习:集合与常用逻辑用语分享就到这里了,关注高中数学肖博老师为大家分享更多高中数学知识点和视频教程.

  9. .md 基本常用编写语法

    .md文件基本常用编写语法 1.标题 第一种: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 一级标题 二级标题 三级标题 四级标题 ...

  10. java创建集合_java创建集合的常用格式

    创建集合的常用格式: 导包:import java.util.ArrayList; 创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型: ArrayList 变量名 = ...

最新文章

  1. 探访日本滨松光子:“光”如何加速汽车行业进入智能汽车时代
  2. 第二周Access总结
  3. [20171109]缓存命中率神话.txt
  4. 解决 : Could not commit JPA transaction RollbackException: Transaction marked as rollbackOnly
  5. Oracle-11g-R2 RAC 环境下 GPnP Profile 文件
  6. 【GPU】nvidia-smi输出内容释义及使用
  7. python计时器程序设计总框图_怎么用python编写计时器?这个编程的方法你一定不要错过...
  8. cannot+connect+mysql_mysqlnd cannot connect to MySQL 4.1+ using the old insecure
  9. FISCO BCOS Webase front 智能合约 参数不合适
  10. [C# 开发技巧]实现属于自己的截图工具
  11. Photoshop 2021神经滤镜Neural Filters离线安装包下载 WIN / MAC(适用于PS 2021版本22.3.X/22.4.X)
  12. Delphi时间戳Unix转换DateTimeToUnix和UnixToDateTime
  13. kron matlab_使用kron来实现repmat, repelem的功能
  14. LaTeX 换行、换页、空白空间
  15. 目标群体是什么意思_什么是目标客户群体?求解
  16. 【ITSM】什么是ITSM,IT部门为什么需要ITSM
  17. Histromap of World History: The rise and fall of peoples and notions for 4000 years
  18. contour 函数详解
  19. std__vector介绍
  20. python不是内部文件别太任性_Python对文件的操作

热门文章

  1. idea新建一个java项目_创建第一个Java项目(Create First Java Project)
  2. matlab两张图片合成一张_MATLAB|多个Figure图按子图合成一个Figure
  3. c# mysql清理_C# 中清空sql数据库中的数据
  4. python网络开发框架_宿迁python网站开发框架收费
  5. ai/ml_您应该在本周(7月18日)阅读有趣的AI / ML文章
  6. 如何识别媒体偏见_面部识别技术存在偏见:为什么我们不应该盲目相信新技术
  7. 通用逼近定理证明_通用逼近定理:代码证明
  8. centos7 redis 重启_linux下redis启动/关闭/重启服务配置
  9. C# string.Format json格式字符串报错”输入字符串的格式不正确“
  10. JS基础知识 --变量类型和计算