【发布时间】:2017-01-29 12:23:46
【问题描述】:
我的函数从列表中的给定单词列表中查找一个单词在页面中是否有效。 因此,当页面包含单词时,我将其编写如下: (简化版)
private boolean atLeastOneWordIsValidInThePage(Page page, Set<Long> wordIdsToCheck)
Set<Long> wordIds = page.getWords().stream()
.filter(word -> word.isValid())
.map(word->getWordId())
.collect(Collectors.toSet());
return words.stream().anyMatch((o) -> wordIds.contains(o));
编写它是最好的 java 8 实践吗?
我想在找到第一个匹配项时停止搜索。
【问题讨论】:
-
我猜想将流收集到一个集合中必须与进行基于集合的查找具有相同的复杂性。所以我认为不需要构造
wordIds。 -
stackoverflow.com/questions/8708542/… 中有一些有趣的方法(只需滚动浏览所有答案)。
标签: java lambda java-8 java-stream