Java 集合存在相同属性,其他元素累加

简介: Java 集合存在相同属性,其他元素累加

使用JDK8的新特性:


OutpatientPayWayAccountVO vo = new OutpatientPayWayAccountVO();
        vo.setIncomeAmount(new BigDecimal(100));
        vo.setPayName("支付宝");
       
        OutpatientPayWayAccountVO vo1 = new OutpatientPayWayAccountVO();
        vo1.setIncomeAmount(new BigDecimal(0.2));
        vo1.setPayName("微信");
       
        OutpatientPayWayAccountVO vo2 = new OutpatientPayWayAccountVO();
        vo2.setIncomeAmount(new BigDecimal(10));
        vo2.setPayName("现金");        
        List<OutpatientPayWayAccountVO> list1 = new ArrayList<>();
        list1.add(vo);
        list1.add(vo1);
        list1.add(vo2);        
       
        OutpatientPayWayAccountVO vo_1 = new OutpatientPayWayAccountVO();
        vo_1.setIncomeAmount(new BigDecimal(100));
        vo_1.setPayName("支付宝");
       
        OutpatientPayWayAccountVO vo_2 = new OutpatientPayWayAccountVO();
        vo_2.setIncomeAmount(new BigDecimal(10));
        vo_2.setPayName("微信");
       
        OutpatientPayWayAccountVO vo_3 = new OutpatientPayWayAccountVO();
        vo_3.setIncomeAmount(new BigDecimal(0.2));
        vo_3.setPayName("现金");
       
        List<OutpatientPayWayAccountVO> list_2 = new ArrayList<>();
        list_2.add(vo_1);
        list_2.add(vo_2);
        list_2.add(vo_3);
       
        List<OutpatientPayWayAccountVO> list = list1.stream().map(m -> {
            list_2.stream().filter(m2-> m.getPayName().equals(m2.getPayName())).forEach(m2-> {
                m.setIncomeAmount(m.getIncomeAmount().add(m2.getIncomeAmount()));
                //m.put("incomeAmount",m2.getIncomeAmount().toString());
                //m.put("age",m2.get("age"));
            });
            return m;
        }).collect(Collectors.toList());
        System.err.println("list:" + list);


目录
相关文章
|
1天前
|
存储 Java 编译器
Java集合定义其泛型
Java集合定义其泛型
8 1
|
3天前
|
算法 安全 Java
【用Java学习数据结构系列】探索Java集合框架的无尽秘密pro
【用Java学习数据结构系列】探索Java集合框架的无尽秘密pro
12 1
|
13天前
|
存储 算法 安全
深入理解Java中的集合框架
【9月更文挑战第34天】本文将带你走进Java的集合框架,探索其背后的设计哲学和实现细节。我们将从集合的基本概念出发,逐步深入到具体的接口和类的实现,最后通过一个实际的例子来展示如何在Java程序中高效地使用集合。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深度理解。
14 1
|
21小时前
|
存储 缓存 安全
Java集合基础知识
Java集合基础知识
|
4天前
|
存储 Java
Java集合的分类
Java集合的分类
10 0
|
9天前
|
存储 分布式计算 Java
Stream很好,Map很酷,但答应我别用toMap():Java开发中的高效集合操作
在Java的世界里,Stream API和Map集合无疑是两大强大的工具,它们极大地简化了数据处理和集合操作的复杂度。然而,在享受这些便利的同时,我们也应当警惕一些潜在的陷阱,尤其是当Stream与Map结合使用时。本文将深入探讨Stream与Map的优雅用法,并特别指出在使用toMap()方法时需要注意的问题,旨在帮助大家在工作中更高效、更安全地使用这些技术。
22 0
|
8天前
|
Java 关系型数据库 MySQL
如何用java的虚拟线程连接数据库
本文介绍了如何使用Java虚拟线程连接数据库,包括设置JDK版本、创建虚拟线程的方法和使用虚拟线程连接MySQL数据库的示例代码。
20 6
如何用java的虚拟线程连接数据库
|
4天前
|
监控 Java Linux
Java 性能调优:调整 GC 线程以获得最佳结果
Java 性能调优:调整 GC 线程以获得最佳结果
34 11
|
1天前
|
并行计算 Java 调度
深入理解Java中的多线程编程
【10月更文挑战第6天】 本文将探讨Java中多线程编程的基本概念、实现方式及其在实际项目中的应用。通过详细的示例和解释,读者能够掌握如何在Java中有效地使用多线程来提高程序的性能和响应能力。
4 1
|
2天前
|
Java 开发者
在 Java 多线程编程中,Lock 接口正逐渐取代传统的 `synchronized` 关键字,成为高手们的首选
【10月更文挑战第6天】在 Java 多线程编程中,Lock 接口正逐渐取代传统的 `synchronized` 关键字,成为高手们的首选。相比 `synchronized`,Lock 提供了更灵活强大的线程同步机制,包括可中断等待、超时等待、重入锁及读写锁等高级特性,极大提升了多线程应用的性能和可靠性。通过示例对比,可以看出 Lock 接口通过 `lock()` 和 `unlock()` 明确管理锁的获取和释放,避免死锁风险,并支持公平锁选择和条件变量,使其在高并发场景下更具优势。掌握 Lock 接口将助力开发者构建更高效、可靠的多线程应用。
8 2