Java8处理List的双层循环

2023-05-16

Java处理List的双层循环程序员经常遇到,一般都是当两个List某个值满足某条件时候,进行相应的处理;

1.list和map之间的相互转换;


/**
 * 两个List对象当id相同的时候(注意是两个对象,而非两个集合)
 * @param husbands
 * @param wives
 */
private static void test8(List<Husband> husbands, List<Wife> wives) {
    List<Family> families = Lists.newArrayList();
    //将wives转换为map,这里的key一定要唯一,即为familyId
    Map<Integer, Wife> wifeMap = wives.stream().collect(toMap(w -> w.getFamilyId(), w -> w));
    families = husbands.stream().map(husband -> {
        Family family = new Family();
        Wife wife = wifeMap.get(husband.getFamilyId());
        family.setFamilyId(wife.getFamilyId());
        family.setHusbandName(husband.getHusbandName());
        family.setWifeName(husband.getWifename());
        return family;
    }).collect(Collectors.toList());
}  

2.java8中的


groupingBy,  

counting,  

mapToDouble  

filter  

sum等函数方法的使用  

//苹果颜色对应的数量
Map<String, Long> collect = appleVos.stream().collect(groupingBy(AppleVo::getColor, counting()));
// 过滤掉颜色为黑色的苹果,并汇总好苹果的总金额
Double sum = appleVos.stream().filter(i -> "black".equals(i.getColor())).mapToDouble(AppleVo::getPrice).sum();  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java8处理List的双层循环 的相关文章

随机推荐

  • flutter doctor出现Windows Version (Unable to confirm if installed Windows version is的问题

    问题描述 Windows Version span class token punctuation span Unable to confirm span class token keyword if span installed Wind
  • [!] Gradle threw an error while downloading artifacts from the network. Retrying to download... Runn

    Gradle threw an error while downloading artifacts from the network Retrying to download Runn 报这个错 把zip包直接放到c盘某个位置 并更改and
  • idea控制台乱码问题

    idea控制台乱码问题 在环境变量上增加 JAVA TOOL OPTIONS 61 Dfile encoding 61 UTF8 然后idea重新打开即可
  • 如何清除/重置一枚NFC标签教程

    如果您的NFC标签已经写入了数据 xff0c 然后您又想把他清除或者重置 xff0c 请按照如下教程 1 首先下载APP xff0c TagWriter xff0c 这是芯片厂商NXP官方推出的APP xff0c 可以说是最权威的 xff0
  • 树莓派系列教程:红外遥控

    网上淘到了一个红外接收器 xff08 HX1838 43 NEC编码红外遥控器 xff09 和一个红外遥控器 xff0c 准备放到树莓派上学习一下红外控制 img http dl2 iteye com upload attachment 0
  • JavaFX Alert对话框

    1 标准对话框 消息对话框 br Alert alert 61 new Alert AlertType INFORMATION br alert setTitle 34 Information Dialog 34 br alert setH
  • 操作系统原理与实践5--内核栈切换的进程切换

    基于内核栈切换的进程切换 难度系数 xff1a 实验目的 深入理解进程和进程切换的概念 xff1b 综合应用进程 CPU管理 PCB LDT 内核栈 内核态等知识解决实际问题 xff1b 开始建立系统认识 实验内容 现在的Linux 0 1
  • 陀螺仪、加速计、磁力计等传感器汇总

    陀螺仪就是内部有一个陀螺 xff0c 它的轴由于陀螺效应始终与初始方向平行 xff0c 这样就可以通过与初始方向的偏差计算出实际方向 手机里陀螺仪实际上是一个结构非常精密的芯片 xff0c 内部包含超微小的陀螺 加速计是用来检测手机受到的加
  • STM32 HAL库串口+DMA接收不定长数据

    在串口通信中 xff0c 很多时候我们需要的是接收一帧不确定长度的数据 xff0c 而不是单个字节或者固定长度 xff0c 这时我们就需要利用STM32的空闲中断 xff08 IDLE xff09 来实现不定长数据的接收 xff0c 首先我
  • cmake学习之道

    cmke命令格式 cmake 选项 路径 最主要的选项 D 添加变量及值 使用案列 xff08 cmake D ARM BUILD 61 1 xff09 表示在当前路径执行Cmake命令并将ARM BUILD的值传到CMakeLists t
  • 20230312在Ubuntu18.04下的安装Chrome

    20230312在Ubuntu18 04下的安装Chrome 2023 3 12 23 42 百度搜索 xff1a chrome ubuntu 参考资料 xff1a https blog csdn net howard2005 articl
  • ubuntu下查看服务器的CPU详细情况(分色排版)

    https www cnblogs com liuq p 5623565 html 全面了解 Linux 服务器 1 查看 Linux 服务器的 CPU 详细情况 ubuntu下查看服务器的CPU详细情况 大文实验室 大文哥 壹捌陆捌零陆捌
  • 为什么.h文件中只能申明不能定义全局变量

    最近使用keil编写下位机单片机程序 xff0c 打算进行模块化的设计 xff0c 遇到了在 h文件中定义全局变量报错的问题 原因 因为C语言的include是直接将文件嵌入到include这个地方的 如果多次包含这个头文件 xff0c 就
  • 跨系统传递 traceId(日志)

    34 新项目查日志太麻烦 xff0c 多台机器之间查来查去 xff0c 还不知道是不是同一个请求的 打印日志时使用 MDC 在日志上添加一个 traceId xff0c 那这个 traceId 如何跨系统传递呢 xff1f 34 1 背景
  • ThreadLocal 适合用在哪些实际生产的场景中?

    在通常的业务开发中 xff0c ThreadLocal有两种典型的使用场景 场景1 xff0c ThreadLocal 用作保存每个线程独享的对象 xff0c 为每个线程都创建一个副本 xff0c 这样每个线程都可以修改自己所拥有的副本 而
  • SpringCloud 分布式事务组件之Seata

    目录 背景介绍什么是分布式事务什么叫做逆向补偿呢互联网最流行的分布式事务组件seata总结 背景 大家好 xff0c 今天给大家分享一个在2022年出去面试Java几乎必问的一个技术 xff0c 那就是seata 什么 xff1f xff1
  • 接口优化方案

    1 批量思想 xff1a 批量操作数据库 优化前 xff1a for循环单笔入库 for TransDetail detail transDetailList insert detail 优化后 xff1a batchInsert tran
  • springboot前端传一个对象后台怎么接受

    34 courseId 34 3 34 userId 34 34 1234456676 34 34 list 34 34 id 34 34 1 34 34 answer 34 34 B 34 34 id 34 34 1 34 34 answ
  • 前端传一个数组或者集合后台怎么接受

    34 id 34 34 1 34 34 answer 34 34 A 34 34 id 34 34 1 34 34 answer 34 34 A 34 这样的可以直接用一个 64 RequesBody List lt QuestionBac
  • Java8处理List的双层循环

    Java处理List的双层循环程序员经常遇到 xff0c 一般都是当两个List某个值满足某条件时候 xff0c 进行相应的处理 xff1b 1 list和map之间的相互转换 两个List对象当id相同的时候 注意是两个对象 而非两个集合