我有这个很长的Java流,但在这里抛出一个看起来不合适的条件:
...
.filter(desc -> !hiddenFields.contains(desc.getName()))
.forEach(
desc -> {
if (requestedFields.isEmpty()
|| requestedFields.contains(desc.getName())) {
allAttributes.add(desc);
}
}));
requestedFields是HashSet<String>
。有什么更漂亮的吗?
答案 0 :(得分:2)
allAttributes = stream.filter(desc -> !hiddenFields.contains(desc.getName()))
.filter(desc -> requestedFields.isEmpty()
|| requestedFields.contains(desc.getName()))
.collect(Collectors.toList());
正如问题评论中所指出的,您可以使用Collectors.toCollection(...)
代替.toList()
,具体取决于allAttributes
的类型