最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之stream流求字段累計(jì)和的3種方法總結(jié)

 更新時(shí)間:2025年09月12日 08:51:42   作者:冉成未來  
Java中Stream流用來幫助處理集合,類似于數(shù)據(jù)庫中的操作,下面這篇文章主要介紹了Java之stream流求字段累計(jì)和的3種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下

示例對(duì)象

首先,假設(shè)你有一個(gè)類Person,它有一個(gè)age字段:

public class Person {
    private String name;
    private int age;
 
    // 構(gòu)造函數(shù)
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
 
    // Getter 和 Setter
    public String getName() {
        return name;
    }
 
    public int getAge() {
        return age;
    }
}

方法1:使用mapToInt和sum

如果你想要計(jì)算所有人的年齡總和,可以使用mapToInt將Person對(duì)象流轉(zhuǎn)換成年齡的IntStream,然后使用sum方法計(jì)算總和:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
 
public class Main {
    public static void main(String[] args) {
        List<Person> people = Arrays.asList(
            new Person("Alice", 30),
            new Person("Bob", 25),
            new Person("Charlie", 35)
        );
        
        int totalAge = people.stream()
                             .mapToInt(Person::getAge) // 將Person對(duì)象轉(zhuǎn)換為int流,提取年齡字段
                             .sum(); // 計(jì)算總和
        
        System.out.println("Total age: " + totalAge); // 輸出Total age: 90
    }
}

方法2:使用reduce方法

你也可以使用reduce方法來累加某個(gè)字段的值:

int totalAge = people.stream()
                     .map(Person::getAge) // 將Person對(duì)象映射為年齡值
                     .reduce(0, Integer::sum); // 使用reduce方法累加年齡值,初始值為0
System.out.println("Total age: " + totalAge); // 輸出Total age: 90

方法3:使用collect和summingInt(Java 8或更高版本)

int totalAge = people.stream()
                     .collect(Collectors.summingInt(Person::getAge)); // 使用Collectors.summingInt收集器計(jì)算總和
System.out.println("Total age: " + totalAge); // 輸出Total age: 90

以上方法都可以用來計(jì)算一個(gè)列表中所有對(duì)象的某個(gè)字段的累計(jì)和。選擇哪種方法取決于你的具體需求和偏好。通常,使用mapToInt().sum()或collect(Collectors.summingInt())是最直接和高效的方式

附:根據(jù)某個(gè)字段的條件篩選并求和(BigDecimal求和)

BigDecimal reduceMorePayAmount = indemnityPayment.getRiPolicyPayeeIndemnitySet().stream()
                    .filter(riPolicyPayeeIndemnity -> riPolicyPayeeIndemnity.getIndemnityType().equals(IndemnityType.MORE_PAY.getValue()))
                    .map(RiPolicyPayeeIndemnity::getFeeAmount).reduce(BigDecimal.ZERO, BigDecimal::add);

總結(jié)

到此這篇關(guān)于Java之stream流求字段累計(jì)和3種方法的文章就介紹到這了,更多相關(guān)Java stream流求字段累計(jì)和內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用SpringCloudAlibaba整合Dubbo

    使用SpringCloudAlibaba整合Dubbo

    這篇文章主要介紹了使用SpringCloudAlibaba整合Dubbo,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • 深入解析@InitBinder注解的功能與應(yīng)用

    深入解析@InitBinder注解的功能與應(yīng)用

    這篇文章主要介紹了深入解析@InitBinder注解的功能與應(yīng)用,從字面意思可以看出這個(gè)的作用是給Binder做初始化的,被此注解的方法可以對(duì)WebDataBinder初始化,webDataBinder是用于表單到方法的數(shù)據(jù)綁定的,需要的朋友可以參考下
    2023-10-10
  • Spring AOP中的JDK和CGLib動(dòng)態(tài)代理哪個(gè)效率更高?

    Spring AOP中的JDK和CGLib動(dòng)態(tài)代理哪個(gè)效率更高?

    今天小編就為大家分享一篇關(guān)于Spring AOP中的JDK和CGLib動(dòng)態(tài)代理哪個(gè)效率更高?,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 探索Java中private方法添加@Transactional事務(wù)未生效原因

    探索Java中private方法添加@Transactional事務(wù)未生效原因

    你又遇到過明明給private方法添加了@Transactional但是事務(wù)依然沒有生效的情況嗎,具體原因本篇文章將詳細(xì)告訴你,有需要的朋友跟著小編往下看吧
    2021-11-11
  • 郵件收發(fā)原理你了解嗎? 郵件發(fā)送基本過程與概念詳解(一)

    郵件收發(fā)原理你了解嗎? 郵件發(fā)送基本過程與概念詳解(一)

    你真的了解郵件收發(fā)原理嗎?這篇文章主要為大家詳細(xì)介紹了郵件發(fā)送基本過程與概念,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java SpringMVC異常處理機(jī)制詳解

    Java SpringMVC異常處理機(jī)制詳解

    這篇文章主要介紹了springmvc如何進(jìn)行異常處理,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-09-09
  • 一次排查@CacheEvict注解失效的經(jīng)歷及解決

    一次排查@CacheEvict注解失效的經(jīng)歷及解決

    這篇文章主要介紹了一次排查@CacheEvict注解失效的經(jīng)歷及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot3集成Kafka的方法詳解

    SpringBoot3集成Kafka的方法詳解

    Kafka是一個(gè)開源的分布式事件流平臺(tái),常被用于高性能數(shù)據(jù)管道、流分析、數(shù)據(jù)集成和關(guān)鍵任務(wù)應(yīng)用,下面我們就來看看SpringBoot3是如何集成Kafka的吧
    2023-08-08
  • springboot接口超時(shí)配置過程及異常處理方式

    springboot接口超時(shí)配置過程及異常處理方式

    SpringBoot控制接口超時(shí)設(shè)置三步曲:配置、接口定義與異常處理,掌握超時(shí)時(shí)間配置、異步處理及統(tǒng)一異常處理策略,確保接口高效穩(wěn)定運(yùn)行
    2026-05-05
  • MyBatis獲取插入記錄的自增長字段值(ID)

    MyBatis獲取插入記錄的自增長字段值(ID)

    本文分步驟給大家介紹了MyBatis獲取插入記錄的自增長字段值的方法,在文中給大家提到了mybatis返回插入數(shù)據(jù)的自增長id,需要的朋友可以參考下
    2017-11-11

最新評(píng)論

右玉县| 陆丰市| 达日县| 育儿| 镇宁| 长垣县| 万山特区| 宝坻区| 湘西| 九龙城区| 扎鲁特旗| 灵宝市| 桦南县| 前郭尔| 七台河市| 永靖县| 米林县| 永平县| 招远市| 望都县| 福贡县| 绥滨县| 泸州市| 巴彦县| 手游| 新建县| 广灵县| 衡东县| 高碑店市| 嵊泗县| 曲阜市| 马公市| 高邑县| 长宁县| 河曲县| 连江县| 吴旗县| 常州市| 苍溪县| 外汇| 太康县|