我的函数从列表中的给定单词列表中查找一个单词在页面中是否有效。 因此,当页面包含单词时,我将其编写如下: (简化版)
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练习吗? 我想在找到第一场比赛时停止搜索。
答案 0 :(得分:3)
无需打开两个单独的流。您应该能够将anyMatch
直接链接到map
函数,如下所示:
return page.getWords().stream()
.filter(word -> word.isValid())
.map(word->getWordId())
.anyMatch((o) -> words.contains(o));