亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

基于 Object 屬性的 Java 8 流文件管理器

基于 Object 屬性的 Java 8 流文件管理器

慕田峪9158850 2022-08-17 12:19:14
我正在嘗試使用java 8中的流從映射中獲取所有值的總和。以下是我擁有的集合:Map<BigDecimal, List<Object>> map = ...... //some elements in this map假設對象具有以下屬性:BigDecimal previousAmount;int typeCode;我正在嘗試獲取所有鍵的列表中的每個對象的所有 previousAmount 的總和。以下是我想出的:BigDecimal previousAmt = map.values().stream().flatMap(List::stream)             .map(Object::previousAmount).reduce(BigDecimal.ZERO, (a, b) -> a.add(b));這給了我列表中所有元素的總和,并且所有鍵都正確。但是我嘗試過濾并僅在類型代碼大于10時才獲取總和。任何人都可以建議如何使用typeCode過濾上述流嗎?
查看完整描述

1 回答

?
holdtom

TA貢獻1805條經驗 獲得超10個贊

你可以只使用 Stream.filter() 方法:

BigDecimal previousAmt = map.values().stream().flatMap(List::stream)
    .filter(i -> i.getTypeCode() > 10) // filters the stream
    .map(MyObject::getPreviousAmount)
    .reduce(BigDecimal.ZERO, BigDecimal::add);


查看完整回答
反對 回復 2022-08-17
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號