リスト内の指定された単語のリストから、ページ内で有効な単語が1つあるかどうかを調べます。 (簡易版)それはそれを書くための最善のJava 8プラクティスリストには別のリスト(Java 8)の値が少なくとも1つ含まれています
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));
です: だからときにページは次のように私はそれを書かれている言葉が含まれていますか?
最初の一致が見つかったときに検索を停止します。
セット・ベースのルックアップを行うことと同じ複雑さを持っている必要があります。次のように直接
map
関数にチェーンanyMatch
にできるはずです。私の意見では 'wordIds'を構築する必要はありません。 –興味深いアプローチはhttp://stackoverflow.com/questions/8708542/something-like-contains-any-for-java-setにあります(すべての回答をスクロールしてください)。 –