1. ホーム
  2. java

[解決済み] セットのコピー Java

2023-04-22 05:17:04

質問

をコピーする方法はありますか? TreeSet ? つまり、次のようなことは可能でしょうか?

Set <Item> itemList;
Set <Item> tempList;

tempList = itemList;

それとも、物理的にセットを繰り返し、一つずつコピーする必要があるのでしょうか?

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

別の方法として コピーコンストラクタ :

Collection<E> oldSet = ...
TreeSet<E> newSet = new TreeSet<E>(oldSet);

または、空のセットを作成し、要素を追加します。

Collection<E> oldSet = ...
TreeSet<E> newSet = new TreeSet<E>();
newSet.addAll(oldSet);

とは異なり clone とは異なり、異なるセットクラス、異なるコンパレータ、あるいは他の(セットでない)コレクションタイプからの入力を使用することができます。


をコピーした結果に注意してください。 Set は新しい Set の要素であるオブジェクトへの参照を含む、新しい Set . 要素オブジェクト自体はコピーされたりクローンされたりしません。 これは、Javaの Collection API が動作するように設計されている方法、つまり、要素オブジェクトをコピーしないことに準拠しています。