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

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

Peek 中的 Java 8 條件邏輯?

Peek 中的 Java 8 條件邏輯?

拉丁的傳說 2023-12-13 17:17:54
我目前有一些 Java 8 代碼,如下所示 - 非常確定我可以將其合并到單個調用中,但不確定如何在 Looped 映射中將條件調用到位??梢杂?peek() 來做到這一點嗎?或者其他 Java 8 調用?當前代碼//turn above groups into a map, grouped by ResolutionMap<Long,List<LeadChannel>> mappedUp = groups                .stream()                .collect( Collectors.groupingBy( channel->channel.getResolution().getId() ) );下一位根據鍵的 ID 手動轉換為字符串映射。Map<String, List<LeadChannel>> finalMap = new HashMap<String, List<LeadChannel>>();for ( Map.Entry<Long,List<LeadChannel>> entry : mappedUp.entrySet()) {    if(  !entry.getKey().equals( RESOLVED_STATUS ) ) {        finalMap.put( "unresolved", entry.getValue() );    } else {        finalMap.put( "resolved", entry.getValue() );    }}我正在嘗試這樣做: Map<String,List<LeadChannel>> mappedUp = groups                        .stream()                        .collect( Collectors.groupingBy( channel->channel.getResolution().getId() ) ).entrySet().stream().peek( if statement etc.. )
查看完整描述

1 回答

?
慕村9548890

TA貢獻1884條經驗 獲得超4個贊

您似乎正在尋找的是一個條件groupingBy:


Map<String, List<LeadChannel>> finalMap = groups

        .stream()

        .collect(Collectors.groupingBy(channel ->

                channel.getResolution().getId().equals(RESOLVED_STATUS) ?

                        "unresolved" : "resolved"));

或者在多個管道中,了解如何對數據進行分區,然后根據問題中共享的條件進一步映射它:


Map<Boolean, List<LeadChannel>> mappedUp = groups

        .stream()

        .collect(Collectors.partitioningBy(channel -> 

                channel.getResolution().getId().equals(RESOLVED_STATUS)));


Map<String, List<LeadChannel>> finalMap = mappedUp.entrySet().stream()

        // in a similar manner you can map your current map's entries as well

        .map(e -> new AbstractMap.SimpleEntry<>(e.getKey() ? "resolved" : "unresolved", e.getValue())) 

        .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

或者正如 Holger 建議的那樣,最好使用 lambda 直接收集為


Map<String, List<LeadChannel>> finalMap = mappedUp.entrySet().stream()

        .collect(Collectors.toMap(e -> e.getKey()? "resolved": "unresolved", Map.Entry::getValue)) 



查看完整回答
反對 回復 2023-12-13
  • 1 回答
  • 0 關注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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