ストリームを作成せずにリストのanyMatch、anyMatchを呼び出すことはできません(パフォーマンス上の理由から)。そこで、私は次のようなユーティリティメソッドを作成し始めました。allMatch、ストリームを作成せずにリストのanyMatch
public static <T> boolean anyMatch(List<T> list, Predicate<T> predicate) {
for (T element : list) {
if (predicate.test(element)) {
return true;
}
}
return false;
}
もっと簡単な方法はありますか?
EDIT私は単一のオブジェクトのコストを心配するだけではありません。 Stream.anyMatchのソースを見ると、この単純なケースでは不要なことがたくさんあることがわかります。
Java 8より前のいくつかのライブラリは、この種の問題を解決しました。 –
'Stream'を使用しようとすると、どのようなパフォーマンスの問題が発生しますか? –
@ JacobG。おそらく何も深刻ですが、それでも私は気になります。ストリームは明らかに、そのような単純なケースでは必要のない多くのことをします。 – lbalazscs