2017-11-24 11 views
0

セットの内容を別のセット(別のオブジェクト)にコピーする方法はありますか?セットの内容を他のセット(別のオブジェクト)にコピーする方法はありますか

addAllは、ソースセットのすべての参照をターゲットセットに追加します。これらの参照が参照するインスタンスのコピーは作成されません。

+1

私はあなたが手で行う必要があると思う。 Javaはカスタムオブジェクトのコピーを作成する方法を知らないので、独自のコピーメソッドを作成する必要があります。 – BackSlash

+0

内容はどういう意味ですか? 'obj1'から' obj2'のメンバーですか?その場合、同じタイプのメンバーですか? –

+0

ディープコピーには明示的なコードが必要です。それ以外の場合は常に浅いコピーです。 – Kayaman

答えて

0

addAll()メソッドは、セットの内容を複製しないため、手動で行い、クローンメソッドを実装する必要があります。

for (MyType t : mySet) 
    otherSet.add(t.clone()); 
+2

't.clone()'はデフォルトでは出現しません。 OPはそのメソッドを定義し、 'Cloneable'を実装する必要があります。 – tsolakp

+0

ください、あなたはより多くの説明Cloneableを実装する方法を与えることができます –

+0

ここに私のプログラムの一部ですSet >> AndCombination =新しいHashSet >>(); \t \t \t AndCombination.add(Sets.newHashSet(op1)); \t \t \t セット<セット<動作 >> AndCombinationCopy =新しい HashSetの<設定<動作 >>(AndCombination)。 (Set >) "> t:AndCombinationの場合、 は{ \tのAndCombinationCopy.add(t.clone());}メソッド" clone –

関連する問題