我正在尝试将以下逻辑流程化:
我有一个从Integer ids到整数计数的映射。我有一个代表ids的Pojos列表。我想合并两者,并有一个pojos到整数计数的映射。
目前我有:
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()调用给我的印象可能是用不同的方式表达得更好。
任何帮助都是最好的!
谢谢,安东尼
发布于 2019-11-22 10:39:02
虽然我不能回答基于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(); https://stackoverflow.com/questions/58980866
复制相似问题