簡體   English   中英

將 pojo 列表合並到可以在鍵上組合的整數 Map 中

[英]Merge a List of pojos into a Map of integers that can be combined on a key

我正在嘗試流化以下邏輯:

我有一個 map 的 Integer id 到 integer 計數。 我有一個代表 id 的 Pojos 列表。 我想將兩者合並,並有一個 map 的 pojos 到 integer 計數。

目前我有:

  return EntryStream.of(idToCountMapping)
      .mapKeys(k -> StreamEx.of(pojos).findFirst(s -> s.getId().equals(k)))
      .filterKeys(Optional::isPresent)
      .mapKeys(Optional::get)
      .mapKeyValue(SuperCoolNewPojo::new)
      .toList(); 

第一個mapKeys()調用讓我印象深刻,因為它可能以不同的方式更好地表達。

任何幫助都會很棒!

謝謝,安東尼

雖然我無法回答基於streamex的完整性,但從我可以推斷和概念化為使用流的方法:

集合Map pojos例如:

Map<String, POJO> idToPojoMap = pojos.stream()
                                     .collect(Collectors.toMap(Pojo::getId, 
                                                   Function.identity(), (a,b) -> a);

此外,它在您的代碼中的使用變得更簡單:

return EntryStream.of(idToCountMapping)
      .filterKeys(k -> idToPojoMap.keySet().contains(k)) // only if part of the created map
      .mapKeyValue(SuperCoolNewPojo::new)
      .toList(); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM