LIST<对象> 转换MAP 并根据某个字段分组

// 并根据某个字段分组,并做了归类
Map<String, List<User>> collect = users.stream().collect(Collectors.groupingBy(User::getUserName));

 Map<String, List<SqePartInfoDTO>> partInfoMapByPmxu = partInfoDTOS.stream().collect(Collectors.groupingBy(SqePartInfoDTO::getPmxu));

// 根据某字段分组
Map<String, SqePartInfoDo> collect = partInfoDoList.stream().collect(Collectors.toMap(SqePartInfoDo::getPartNo, SqePartInfoDo -> SqePartInfoDo));
//当根据某字段(getIssueDetailId),该字段对应的Do有重复时,可以用这种方式
Map<Long, PisIssueMeasuresDoV1> measuresDoByDetailIdMap = unfinishedMeasureProcessList.stream().collect(
Collectors.toMap(PisIssueMeasuresDoV1::getIssueDetailId, PisIssueMeasuresDoV1 -> PisIssueMeasuresDoV1,(v1, v2) -> v1));

  

List按某个字段排序

List<User> newList = list.stream().sorted(Comparator.comparing(User::getAge)).collect(Collectors.toList());

获取List<对象>中每个对象某个属性的集合 

List<String> partNos = list.stream().map(ApqpPartsStartConfigurationDo::getPartNo).collect(Collectors.toList());
// 对对象的属性做了去重
List<String> sSqeCodeList = records.stream().map(ApqpGroupBasicDo::getSSqeCode).distinct().collect(Collectors.toList());

Stream.filter:

//根据域账号分组
Map<String, ThirdSyncUserDTO> usersMapByWindowsAccount = allUsers.stream()
.filter(item -> StringUtils.isNotBlank(item.getWindowsAccount()))
.collect(Collectors.toMap(ThirdSyncUserDTO::getWindowsAccount, ThirdSyncUserDTO -> ThirdSyncUserDTO));
// 根据对象中某个字段进行排序,.reversed()降序
processInfoDTORespList = processInfoDTORespList.stream()
        .sorted(Comparator.comparing(PisMalfunctionProcessInfoDTO::getRelationTime)
        .reversed())
        .collect(Collectors.toList());

stream流获取对象某个属性的最大和最小值:

PisIssueProcessDetailDo pisIssueProcessDetailDo = list.stream()
.max(Comparator.comparing(PisIssueProcessDetailDo::getIssueVersion)).get();
// DEMO    
public static void main(String[] args) {

List<PisIssueProcessDetailDo> list = new ArrayList<>();
PisIssueProcessDetailDo issueProcessDetailDo01 = new PisIssueProcessDetailDo();
issueProcessDetailDo01.setIssueId(1L);
issueProcessDetailDo01.setIssueVersion(2L);
PisIssueProcessDetailDo issueProcessDetailDo02 = new PisIssueProcessDetailDo();
issueProcessDetailDo02.setIssueId(3L);
issueProcessDetailDo02.setIssueVersion(3L);
PisIssueProcessDetailDo issueProcessDetailDo03 = new PisIssueProcessDetailDo();
issueProcessDetailDo03.setIssueId(2L);
issueProcessDetailDo03.setIssueVersion(1L);
PisIssueProcessDetailDo issueProcessDetailDo04 = new PisIssueProcessDetailDo();
issueProcessDetailDo04.setIssueId(4L);
issueProcessDetailDo04.setIssueVersion(0L); list.add(issueProcessDetailDo01);
list.add(issueProcessDetailDo02);
list.add(issueProcessDetailDo03);
list.add(issueProcessDetailDo04); PisIssueProcessDetailDo pisIssueProcessDetailDo = list.stream()
.max(Comparator.comparing(PisIssueProcessDetailDo::getIssueVersion)).get();
PisIssueProcessDetailDo pisIssueProcessDetailDo1 = list.stream()
.max(Comparator.comparing(PisIssueProcessDetailDo::getIssueId)).get(); System.out.println(pisIssueProcessDetailDo); }

最新文章

  1. Nginx转发地址解决跨域问题
  2. Be a new gentleman
  3. audio和video元素
  4. Android项目结构分析
  5. 超市管理系统—NABCD模型
  6. C#网络资源列表
  7. ES Head is not working with elasticsearch-1.4.0.Beta1
  8. Python你必须知道的十个库
  9. 【Tomcat】使用Eclipse发布项目时,项目启动路径错误。
  10. React Starter Kit 中文文档
  11. Python3.5 在Ubuntu16.04上无法画图的解决方案
  12. Very Long Suffix Array
  13. Spring history、design philosophy (Spring的历史及设计理念)
  14. 【Cucumber】【问题集锦】
  15. vue 安装sass扩展
  16. python 入门基础4 --数据类型及内置方法
  17. 2 Kafka Broker
  18. Oracle Net Manager 服务命名配置以及用PL/SQL 登陆数据库
  19. 去掉if
  20. 【FFT】HDU4609-3 idiots

热门文章

  1. vue高级进阶( 二 ) 8种组件通信详解
  2. 使用 Nginx 如何部署 web 项目
  3. 【ESP32学习】CMake学习
  4. C语言printf输出32位十六进制
  5. 睿爸信奥-【临阵磨枪】练习赛(第一场)- T3
  6. redhat7
  7. vue引入swiper的报错以及swiper在vue中的交互事件处理
  8. 2022-4-6内部群每日三题-清辉PMP
  9. Spring 装配基础类型
  10. Linux下找不到SO的解决方法