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

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

在地圖中提取值

在地圖中提取值

青春有我 2023-04-13 15:05:12
我們有一張地圖 Students { studentId : StudentData }。StudentData 是一個具有學生屬性的 POJO。要求是讓所有學生都具有 attribute isCurrent==true。如果是,則提取學生的城市屬性。這將用于增加 studentpercity 地圖的計數(shù){ city : count }Students.entrySet()                 .stream()                 .filter(x -> true == x.getValue().isCurrent())                 .forEach(x -> {                       studentpercity(x.getValue().getCity(), (studentpercity.getOrDefault(x.getValue().getCity(), 0) + 1));                       });最終輸出將是一張城市地圖,以計算“當前”學生的數(shù)量。有沒有更有效的方法來實現(xiàn)這一目標?
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經(jīng)驗 獲得超8個贊

你可以這樣做,

Map<String, Long> studentPerCity = students.values().stream().filter(StudentData::isCurrent)
        .collect(Collectors.groupingBy(StudentData::getCity, Collectors.counting()));



查看完整回答
反對 回復(fù) 2023-04-13
?
搖曳的薔薇

TA貢獻1793條經(jīng)驗 獲得超6個贊

另一種選擇可能是這樣的:

students.values().stream()
                .filter(StudenData::isCurrent)
                .map(StudenData::getCity)
                .forEach(city -> studentpercity(city, studentpercity.getOrDefault(city, 0) + 1));

但是,關(guān)于您對“迭代”的評論。在單個流中(如您的示例),每個元素僅迭代一次。這意味著流中的每個操作都將在每個元素上應(yīng)用一次,并且只有在之前沒有被過濾掉的情況下才會應(yīng)用。


查看完整回答
反對 回復(fù) 2023-04-13
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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