Iterables.filter(Iterable, Predicate)
とCollections2.filter(Collection, Predicate)
メソッドに違いがあるかどうか、グアバで知りたいですか?
それらは反復順序を維持し、ライブビューを提供しているようです。Javadoc によると、呼び出しCollections2.filter().size()
はすべての要素を反復します。
アイテムのリストをフィルタリングする述語があり、その結果、ビュー (またはリストは関係ありません) に残っているアイテムの数が必要だとします。私は何を使うべきですか?メソッドが s によって提供されているため、使用Collections2.filter
する方が簡単に思えます。size()
Collection
しかし、バックグラウンドでは、次の違いがあります:
ImmutableList.copyOf(
Iterables.filter(lead.getActions(), isRealActionDoneByUserPredicate)
).size();
と:
Collections2.filter(lead.getActions(),isRealActionDoneByUserPredicate).size();
ところで、 のImmutableList
構築は通常の の構築よりも高速ArrayList
ですか?