我有 Set firstSet 和 Set secondSet。我需要得到最终的 Set 豆;
Set<Bean> beans = new HashSet<Bean>();
for(BigDecimal element: firstSet){
if(secondSet.contains(element)){
beans.add(new BeanBuilder().id(element).isNew(Boolean.TRUE).build());
} else {
beans.add(new BeanBuilder().id(element).isNew(Boolean.FALSE).build());
}
}
如何使用 lambda 表达式编写它?(需要解析两个流)。
Set<BEBean> arr = firstSet
.stream()
.flatMap( if(secondSet::contains) {
new BeanBuilder().id(x).isNew(Boolean.TRUE).build();
} else {
new BEBuilder().id(x).name(Boolean.FALSE).build();
})
.collect(Collectors.toSet());
完全避免代码重复:
Set<BEBean> beans = availableResources
.stream()
.map(e -> new BeanBuilder().id(e).isNew(secondSet.contains(e)).build())
.collect(Collectors.toSet());
请注意,您也可以避免循环中的代码重复:
Set<Bean> beans = new HashSet<Bean>();
for(BigDecimal element: firstSet)
beans.add(new BeanBuilder().id(element).isNew(secondSet.contains(element)).build());
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句