第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用嵌套列表進(jìn)行分組和求和

使用嵌套列表進(jìn)行分組和求和

猛跑小豬 2022-09-01 16:41:10
我有嵌套列表,我正在嘗試使用java流和收集器進(jìn)行分組和求和以獲得所需的結(jié)果。有了這個(gè),我無(wú)法循環(huán)訪問(wèn)多個(gè).要么我必須使用for循環(huán),要么使用其他一些邏輯。我想實(shí)現(xiàn)使用流 API。有沒(méi)有可能SubAccountsMap<Long, BigDecimal> assetQuanMap = subAccounts.getAssets.parallelStream().collect(Collectors.groupingBy(Asset::getAssetId, Collectors.reducing(BigDecimal.ZERO, Asset::getQuantity, BigDecimal::add)));我有以下課程或表示:    Account        SubAccount1            Assets                1 - 20                2 - 30                3 - 40        SubAccount2            Assets                1 - 10                2 - 5                3 - 3        SubAccount3                1 - 3                2 - 3                3 - 4帳戶類如下所示:Public class Account{  List<SubAccounts> list;}Public Class SubAccounts    {   List<Assets> list;}Public class Assets{    Long assetId;    BigDecimal quantity ;}我正在嘗試在地圖中獲得如下結(jié)果?;旧?,對(duì)于每個(gè)子帳戶,我需要在帳戶級(jí)別對(duì)資產(chǎn)進(jìn)行分組,如下所示1 - 332 - 383 - 47
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

您必須使用兩個(gè)平面地圖,以便按assetId

Map<String, BigDecimal> collect = accounts.stream()
        .flatMap(account -> account.getList().stream())
        .flatMap(subAccount -> subAccount.getList().stream())
        .collect(Collectors.groupingBy(Assets::getAssetId,
                Collectors.reducing(
                        BigDecimal.ZERO, 
                        Assets::getQuantity,
                        BigDecimal::add)
        ));

from 你的代碼是一個(gè) String,所以 map 的鍵應(yīng)該是一個(gè) String,或者你必須轉(zhuǎn)換它,或者在你的類中更改它,就像這樣:assetId

Map<Long, BigDecimal> collect = accounts.stream()
        .flatMap(account -> account.getList().stream())
        .flatMap(subAccount -> subAccount.getList().stream())
        .collect(Collectors.groupingBy(asset -> Long.valueOf(asset.getAssetId()),
                Collectors.reducing(
                        BigDecimal.ZERO,
                        Assets::getQuantity,
                        BigDecimal::add
                )
        ));

筆記

  • 不要在類的名稱中使用復(fù)數(shù);

  • 不要將變量命名為 ,請(qǐng)使用另一個(gè)重要名稱;list

  • 不要用作屬性的名稱,而應(yīng)僅使用assetIdid;

  • 不要在變量名稱中使用 List,而應(yīng)在末尾使用,例如 或 。assetListsassetsaccounts


查看完整回答
反對(duì) 回復(fù) 2022-09-01
  • 1 回答
  • 0 關(guān)注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)