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

如何用Stream解決兩層List屬性求和問題

 更新時間:2023年05月29日 14:21:00   作者:CizelTian  
這篇文章主要介紹了如何用Stream解決兩層List屬性求和問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

用Stream解決兩層List屬性求和

假設一個人有很多個銀行賬戶,每個銀行賬戶中存有不同金額的存款,那么我們如何用Stream求一組人的所有存款呢?

首先,我們來建立一下所需的對象。

//賬戶對象
public class Account {
    //賬號
    private String accountNumber;
    //余額
    private Integer balance;
    public Account() {
    }
    public Account(String accountNumber, Integer balance) {
        this.accountNumber = accountNumber;
        this.balance = balance;
    }
    public String getAccountNumber() {
        return accountNumber;
    }
    public void setAccountNumber(String accountNumber) {
        this.accountNumber = accountNumber;
    }
    public Integer getBalance() {
        return balance;
    }
    public void setBalance(Integer balance) {
        this.balance = balance;
    }
}
//人對象
public class Person {
    private String name;
    private Integer age;
    //賬戶列表
    private List<Account> accounts;
    public Person() {
    }
    public Person(String name, Integer age, List<Account> accounts) {
        this.name = name;
        this.age = age;
        this.accounts = accounts;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public List<Account> getAccounts() {
        return accounts;
    }
    public void setAccounts(List<Account> accounts) {
        this.accounts = accounts;
    }
}

建立用Stream流計算賬戶總余額的代碼

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class Sum {
    public static void main(String[] args) {
        //生成包含四個賬戶的賬戶列表
        List<Account> accounts1 = new ArrayList<>();
        Account account1 = new Account("0001",100);
        Account account2 = new Account("0001",200);
        Account account3 = new Account("0001",300);
        Account account4 = new Account("0001",400);
        accounts1.add(account1);
        accounts1.add(account2);
        accounts1.add(account3);
        accounts1.add(account4);
        //生成一個名為“zs“的人對象
        Person person1 = new Person("zs",20,accounts1);
        //生成包含三個賬戶的賬戶列表
        List<Account> accounts2 = new ArrayList<>();
        Account account5 = new Account("0001",500);
        Account account6 = new Account("0001",600);
        Account account7 = new Account("0001",700);
        accounts2.add(account5);
        accounts2.add(account6);
        accounts2.add(account7);
        //生成一個”ls“的人對象
        Person person2 = new Person("ls",30,accounts2);
        //生成人列表
        List<Person> persons = new ArrayList<>();
        persons.add(person1);
        persons.add(person2);
        //計算總金額
        Integer sum = persons.stream().map(Person::getAccounts).flatMap(Collection::stream).map(Account::getBalance).reduce(0,Integer::sum);
        System.out.println(sum);
    }
}

其中flatMap是把兩個List<Account>合并為一個List,方便后續(xù)計算總額

stream計算一個List對象中某個字段總和

int total = list.stream().mapToInt(User::getAge).sum();

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • java中redis增刪查以及清理緩存的案例

    java中redis增刪查以及清理緩存的案例

    這篇文章主要介紹了java中redis增刪查以及清理緩存的案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java將時間按月份分段的實現思路與方法

    Java將時間按月份分段的實現思路與方法

    這篇文章主要給大家介紹了關于Java將時間按月份分段的實現思路與方法,通過文中介紹的方法可以將時間分成我們想要的時間段,文中給出了詳細的實例代碼,需要的朋友可以參考下
    2021-07-07
  • Java中List分片的5種方法小結

    Java中List分片的5種方法小結

    本文主要介紹了Java中List分片的5種方法小結,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • java 生成有序賬號的實現方法

    java 生成有序賬號的實現方法

    下面小編就為大家?guī)硪黄猨ava 生成有序賬號的實現方法。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java調用新浪api通過Ip查詢地區(qū)

    Java調用新浪api通過Ip查詢地區(qū)

    這篇文章主要介紹了Java調用新浪接口通過Ip查詢地區(qū),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Java線程池實現原理詳解

    Java線程池實現原理詳解

    在面向對象編程中,創(chuàng)建和銷毀對象是很費時間的,因為創(chuàng)建一個對象要獲取內存資源或者其它更多資源,在Java中更是如此,虛擬機將試圖跟蹤每一個對象,以便能夠在對象銷毀后進行垃圾回收,本文將對Java線程池實現原理進行詳細介紹,需要的朋友可以參考下
    2023-07-07
  • 關于spring?data?jpa?模糊查詢like的坑點

    關于spring?data?jpa?模糊查詢like的坑點

    這篇文章主要介紹了關于spring?data?jpa?模糊查詢like的坑點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Spring Boot 多環(huán)境配置Maven Profile vs 啟動參數注入深入解析

    Spring Boot 多環(huán)境配置Maven Profile vs 啟

    本文介紹了在Java項目開發(fā)和部署中使用多環(huán)境配置的方法,比較了兩種主要方式:MavenProfile方式和啟動參數方式,結合實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 如何簡單的理解依賴注入詳解

    如何簡單的理解依賴注入詳解

    一直對依賴注入理解不清楚,最近突然理解了,所以下面這篇文章主要給大家介紹了關于如何簡單的理解依賴注入的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-07-07
  • 基于JPA的Repository使用詳解

    基于JPA的Repository使用詳解

    這篇文章主要介紹了JPA的Repository使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

怀来县| 色达县| 桂阳县| 虞城县| 宝丰县| 南郑县| 苍山县| 吉木萨尔县| 平山县| 织金县| 临潭县| 德令哈市| 玛多县| 呈贡县| 丹东市| 石首市| 石泉县| 毕节市| 包头市| 江川县| 莆田市| 五家渠市| 商水县| 凌源市| 上高县| 四川省| 洛南县| 策勒县| 潞西市| 塘沽区| 海南省| 濮阳县| 财经| 区。| 齐齐哈尔市| 乌兰察布市| 辉县市| 万全县| 孟村| 乡城县| 石林|