1. ホーム
  2. java

[解決済み] IterableをCollectionに変換する簡単な方法

2022-03-21 12:21:44

質問

私のアプリケーションでは、サードパーティのライブラリ(正確にはSpring Data for MongoDB)を使用しています。

このライブラリのメソッドは Iterable<T> 一方、私のコードの残りの部分は Collection<T> .

どこかに、一方をもう一方に素早く変換できるユーティリティメソッドはないでしょうか?の束を作るのは避けたいのですが。 foreach このような単純なことのために、私のコードにループがあります。

どのように解決するのですか?

グアバ を使用することができます。 Lists.newArrayList(Iterable) または セット.newHashSet(Iterable) 他の類似のメソッドと同様です。もちろん、これはすべての要素をメモリにコピーします。もし、それが受け入れられないのであれば、これらを扱うコードは、以下のようにするべきだと思います。 Iterable ではなく Collection . また、Guava は、あなたが Collection を使用して Iterable など Iterables.isEmpty(Iterable) または Iterables.contains(Iterable, Object) ) が、パフォーマンスへの影響はより明らかです。