当前位置: 首页 > article >正文

Java------Stream流式编程高级API【groupingBy、flatMap】(六)

Java------Stream流式编程高级API【groupingBy、flatMap】(六)

groupingBy 分组分类

groupingBy分组分类,可以通过单个属性字段进行分组分类,
此时的key就是单个属性字段。
比如:

list.stream().
collect(Collectors.groupingBy(x -> x.getAreaId()));

案例:

List list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
PmAreasT pmAreasT = new PmAreasT();
pmAreasT.setAreaId(“i”+i);
list.add(pmAreasT);
}
for (int i = 0; i < 10; i++) {
PmAreasT pmAreasT = new PmAreasT();
pmAreasT.setAreaId(“i”+i);
list.add(pmAreasT);
}
Map<String, List> collect = list.stream().
collect(Collectors.groupingBy(x -> x.getAreaId()));
Set<Map.Entry<String, List>> entries2 = collect.entrySet();
for (Map.Entry<String, List> entry : entries2) {
entry.getValue().forEach(x->x.setAreaDesc(“asd”));
}

groupingBy分组分类,可以通过多个属性字段联合属性进行分组分类
比如:

list.stream().
collect(Collectors.groupingBy(x -> x.getAreaId()+x.getAreaCode()+x.getItmId()));

此时的key是多个属性字段拼接而成。案例:

List list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
PmAreasT pmAreasT = new PmAreasT();
pmAreasT.setAreaId(“i”+i);
list.add(pmAreasT);
}
for (int i = 0; i < 10; i++) {
PmAreasT pmAreasT = new PmAreasT();
pmAreasT.setAreaId(“i”+i);
list.add(pmAreasT);
}
Map<String, List> collect = list.stream().
collect(Collectors.groupingBy(x -> x.getAreaId()+x.getAreaCode()+x.getItmId()));
Set<Map.Entry<String, List>> entries2 = collect.entrySet();
for (Map.Entry<String, List> entry : entries2) {
entry.getValue().forEach(x->x.setAreaDesc(“asd”));
}


http://www.kler.cn/news/10559.html

相关文章:

  • 记2023第十四届蓝桥杯感受
  • 初识linux之线程控制
  • (二十三)槽函数的书写规则导致槽函数触发2次的问题
  • Microsoft Intune部署方案
  • 为pip永久性添加国内镜像安装源
  • 44.节流与防抖
  • JavaScript函数
  • android ndk 编译 libevent
  • setInterval 让它刚进页面时执行一次,然后根据设置的间隔时间执行;clearInterval清除setInterval。
  • webgl-根据鼠标点击而移动
  • linux对动态库的搜索知识梳理
  • 推荐 ChatGpt 平替介绍文章
  • TensorFlow 机器学习秘籍第二版:6~8
  • 常见网络协议汇总(一)
  • 前端手写综合考题
  • DS-NeRF代码
  • 【SpringMVC】SpringMVC注解式开发
  • ChatGPT实现用C语言写一个学生成绩管理系统
  • 阻塞/非阻塞、同步/异步、五种IO模型
  • SpringBoot基础配置
  • Spring相关概念
  • 2.28、共享内存(1)
  • springboot如何优雅的打印项目日志
  • 蹭ChatGPT热点有风险,昆仑万维蹭热点被发监管函
  • Vite打包后直接使用浏览器打开,显示空白问题
  • 题解,git的使用,MySQL与JDBC的使用(上)
  • NDK RTMP直播客户端二
  • Metasploit高级技术【第十章】
  • C++篇 ---- 命名空间namespace
  • 华为MatePad有什么好用的软件?