java.util.CollectionsのaddAllメソッドの実装は、ソースコレクションをループし、ソースコレクション内の各要素の受信コレクションのaddメソッドを呼び出します。コレクションの基になるデータ構造が最大で1回だけサイズが変更されることを保証するコレクションaddAllユーティリティメソッドはありますか?
したがって、受信側のコレクションの容量が小さく、多数の要素を追加している場合は、受信側のコレクションの基礎となるデータ構造のサイズ変更が複数回発生する可能性があります。各サイズ変更はO(n)操作になります。
addAllメソッドを追加すると、追加する要素の数を確認し、受信コレクションの容量を最初に(必要に応じて)1回設定する必要があります。そのようなユーティリティメソッドは存在しますか?そうでない場合は、どうしてですか?
明確化:私は、この特定の動作を持つ実装固有のaddAllメソッド(ArrayListなど)があることを認識しています。私は、コレクションのすべての実装クラスで動作する方法でこの動作を取得するCollectionユーティリティクラスがあるのだろうかと思います。
はい、これはまさに私が話していることです。これはArrayListのためにうまく動作しますが、コレクションのユーティリティクラスがあるかどうかは不思議でした。これは、すべてのコレクションに対して機能するaddAllメソッドのサイズを変更するだけです。 答えから、コレクションの実装が互いに非常に異なるため、このようなユーティリティメソッドは存在しないようです。 – dasl