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

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

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

示例對象

首先,假設(shè)你有一個類Person,它有一個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

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

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對象轉(zhuǎn)換為int流,提取年齡字段
                             .sum(); // 計算總和
        
        System.out.println("Total age: " + totalAge); // 輸出Total age: 90
    }
}

方法2:使用reduce方法

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

int totalAge = people.stream()
                     .map(Person::getAge) // 將Person對象映射為年齡值
                     .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收集器計算總和
System.out.println("Total age: " + totalAge); // 輸出Total age: 90

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

附:根據(jù)某個字段的條件篩選并求和(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流求字段累計和3種方法的文章就介紹到這了,更多相關(guān)Java stream流求字段累計和內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用SpringCloudAlibaba整合Dubbo

    使用SpringCloudAlibaba整合Dubbo

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

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

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

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

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

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

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

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

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

    Java SpringMVC異常處理機制詳解

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

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

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

    SpringBoot3集成Kafka的方法詳解

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

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

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

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

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

最新評論

文水县| 宁安市| 滨海县| 沙田区| 丹江口市| 仁怀市| 邢台市| 集安市| 正阳县| 林州市| 嘉祥县| 贺州市| 甘孜县| 姚安县| 印江| 苗栗县| 故城县| 抚远县| 肇源县| 武鸣县| 景洪市| 永昌县| 任丘市| 黎城县| 台北市| 临泽县| 玉门市| 佛山市| 通化县| 大港区| 洛隆县| 清河县| 小金县| 天长市| 西藏| 新兴县| 天峨县| 怀仁县| 湛江市| 容城县| 海丰县|