Bic*_*ick 6 java lambda java-8 java-stream
我的函数查找列表中给定单词的列表中是否有一个单词在页面中有效。因此,当页面包含单词时,我将其编写如下:(简化版)
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));
Run Code Online (Sandbox Code Playgroud)
编写它是最好的java 8实践吗?
我想在找到第一个匹配项时停止搜索。
无需打开两个单独的流。您应该能够anyMatch直接链接到该map函数,如下所示:
return page.getWords().stream()
.filter(word -> word.isValid())
.map(word->getWordId())
.anyMatch((o) -> words.contains(o));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7500 次 |
| 最近记录: |