我正在尝试流化以下逻辑:
我有一个整数 id 到整数计数的映射。我有一个代表 id 的 Pojo 列表。我想将两者合并并获得 pojo 到整数计数的映射。
目前我有:
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
的完整性,但从我可以推断和概念化为使用流的方法:
集合pojos
可以转换为Map
,例如:
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();
关于java - 将 pojo 列表合并到可以在键上组合的整数 Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58980866/