Javaコレクションリストをコピーする方法 質問する

Javaコレクションリストをコピーする方法 質問する

があり、それを正確にコピーしたいと考えています。誰かが時間をかけて正しく作成しているという前提で、可能な場合はユーティリティ クラスを使用します。そのため、当然、コピー メソッドを含むクラスがArrayList作成されます。Collections

次のような状況があるとします。

List<String> a = new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
List<String> b = new ArrayList<String>(a.size());

Collections.copy(b,a);

これは基本的にbを保持するには大きさが足りないと判断されるため失敗しますabのサイズが 0 であることはわかっていますが、これで十分な大きさになるはずですよね? 最初に を埋める必要がある場合b、 はCollections.copy()私の考えでは完全に役に立たない関数になります。では、コピー関数をプログラミングする以外に (今から実行します)、これを行う適切な方法はありますか?

ベストアンサー1

bがあります容量3つですが、サイズArrayList0 です。 が何らかのバッファ容量を持っているという事実は実装の詳細です。これはListインターフェースの一部ではないので、Collections.copy(List, List)使用されません。 を特別なケースにするのは見苦しいでしょうArrayList

tddmonkey が示したように、コレクションを受け取る ArrayList コンストラクターを使用するのが、提供された例の方法です。

より複雑なシナリオ(実際のコードが含まれる可能性もある)の場合は、以下のコレクションを参照してください。グアバ役に立つ。

おすすめ記事