首页 > 编程语言 >Java8 Stream List Map:Stream 流对象汇总 求和 某个属性 BigDecimal MDouble

Java8 Stream List Map:Stream 流对象汇总 求和 某个属性 BigDecimal MDouble

时间:2023-06-13 13:03:22浏览次数:60  
标签:Map BigDecimal Stream money list add User MDouble

测试实体(数字对象使用 MDouble):
import com.mchweb.common.lang.MDouble;
import lombok.*;

@Getter
@Setter
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private MDouble money;
}

import com.mchweb.common.lang.MDouble;
import org.apache.commons.compress.utils.Lists;

import java.util.List;

public class TestTime {

    public static void main(String[] args) {
        // 创建 一组 User对象
        List<User> list = Lists.newArrayList();
        list.add(User.builder().money(new MDouble(11D)).build());
        list.add(User.builder().money(new MDouble(22D)).build());
        list.add(User.builder().money(new MDouble(133D)).build());
        list.add(User.builder().money(new MDouble(44D)).build());

        // ★★★ 求和方法 ★★★
        MDouble dd = list.stream().map(User::getMoney).reduce(MDouble.ZERO, MDouble::add);
        System.out.println(dd);
    }
}

测试实体(数字对象使用 BigDecimal):
import lombok.*;

import java.math.BigDecimal;

@Getter
@Setter
@Builder(toBuilder = true)
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private BigDecimal money;
}

import org.apache.commons.compress.utils.Lists;

import java.math.BigDecimal;
import java.util.List;

public class TestTime {

    public static void main(String[] args) {
        // 创建 一组 User对象
        List<User> list = Lists.newArrayList();
        list.add(User.builder().money(new BigDecimal(12D)).build());
        list.add(User.builder().money(new BigDecimal(22D)).build());
        list.add(User.builder().money(new BigDecimal(133D)).build());
        list.add(User.builder().money(new BigDecimal(44D)).build());

        // ★★★ 求和方法 ★★★
        BigDecimal dd = list.stream().map(User::getMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
        System.out.println(dd);
    }
}

标签:Map,BigDecimal,Stream,money,list,add,User,MDouble
From: https://blog.51cto.com/u_16111399/6468991

相关文章

  • stream().filter()的用法
    stream().filter()的用法平时我们会经常看到stream().filter()的方式去查询数据stream.filter一般适用于list集合,主要作用就是模拟sql查询,从集合中查询想要的数据。filter里面的参数user是指集合里面的每一项我们来一个简单的示例就能看懂他的用法了publicclassStreamTest{......
  • 为什么HashMap会产生死循环?
     HashMap死循环是一个比较常见、比较经典的问题,在日常的面试中出现的频率比较高,所以接下来咱们通过图解的方式,带大家彻底理解死循环的原因。前置知识死循环问题发生在JDK1.7版本中,造成这个问题主要是由于HashMap自身的运行机制,加上并发操作,从而导致了死循环。在JDK......
  • 枚举的方法、枚举案例 - 状态机、组织枚举、策略枚举、枚举工具类 - EnumSet 和 EnumM
    引入编写季节类(Season),该类只有四个对象(spring,summer,autumn,winter)概念枚举(enum)全称为enumeration,是JDK1.5中引入的新特性。语法publicenumColor{//默认添加publicstaticfinalRED,GREEN,BLUE;}本质尽管枚举看起来像是一种新的数据类型,实际上,枚举就是一种受限制......
  • mapbox添加自定义控件
    需要定义一个类,然后至少重写实现onAdd、onRemove方法,示例如下<template><divref="changeViewRef"@click="changeView"class="changeViewmapboxgl-ctrl"><el-tooltipclass="box-item"effect="dark"......
  • 什么是HLS(HTTP Live Streaming)?
    HLSEasyTech#013#2009年,Apple推出了HLS(HTTPLiveStreaming)——基于HTTP的自适应码率流媒体传输协议。HLS描述了一组通过互联网提供音视频服务的工具和程序。一个视频可以被分割成多个视频切片,这些切片的传送位置和顺序在一组被称为播放列表的XML文件中,该文件以文件扩展名m3u8结尾......
  • ESMap 三维地图在智慧园区三维场景的应用-数字孪生3D可视化服务平台
       近年来,得益于物联网、大数据、云计算、人工智能等新一代信息技术的发展,“数字孪生”概念也被广泛的传播,越来越多的应用于智慧建筑、生产制造、智慧园区、水利水务、健康医疗等诸多领域。 如何运用“数字孪生”概念延长企业生命周期,助力企业从2D管理向3D管理的升级?易景......
  • 6、Stream
    1、介绍目的:用于简化集合和数组操作的API,结合了Lambda表达式Stream流思想的核心先得到集合或者数组的Stream流(就是一根传送带)把元素放上去然后就用这个Stream流简化的API来方便的操作元素List<String>names=newArrayList<>();Collections.addAll(names,"......
  • 告警:线上慎用 BigDecimal !
    来源:cnblogs.com/zhangyinhua/p/11545305.html一、BigDecimal概述Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的数进行运算和处理。一般情况下,对于那些......
  • SSM框架 使用逆向工程生成Bean、XxxMapper 和XxxMapper.xml【MyBatis Generator 】
    在properties配置文件中,数据库用户名的键不能设为username,你随便改个其他的应该都可以,例如jdbc.username,甚至拼错usernaem都可以jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8jdbc.u......
  • JavaStream LIst转map
    publicstaticvoidmain(String[]args){List<TarKoc>tarKocs=newArrayList<>();tarKocs.add(newTarKoc().setId(1).setKName("aaa"));tarKocs.add(newTarKoc().setId(2).setKName("bb"));t......