LinkedHasMap
をJavaでクローニングするにはどうすればよいですか?Java LinkedHashMapのクローニング
私はすでに試した:
Map<String, Object> clonedMap = new LinkedHashMap<String, Object>(originalMap);
しかし、それは動作しませんでした。
LinkedHasMap
をJavaでクローニングするにはどうすればよいですか?Java LinkedHashMapのクローニング
私はすでに試した:
Map<String, Object> clonedMap = new LinkedHashMap<String, Object>(originalMap);
しかし、それは動作しませんでした。
ディープコピーを取得する最も簡単な方法は、マップをシリアル化してからそれを逆シリアル化することです。より速い方法は、マップ全体を考え、各キー/値を複製して新しいマップに配置することです。
浅いコピーが必要な場合は、スニペットが正しく行います。
シリアライゼーションは簡単な解決策ですが、何か自動化したい場合は、むしろリフレクションを使用したいと思います。しかし、クローン可能なすべてのクラスにCloneableインターフェイス(http://docs.oracle.com/javase/6/docs/api/java/lang/Cloneable.html)を実装させることがさらに効果的です。 –
なぜ機能しませんでしたか?あなたは何をしたいのですか? – SLaks
"did not work"を定義します。 'new Map(map)'は "浅い"コピーを作成します - 参照は同じです。 「深い」コピー(すべてのキーと値も*クローン化されている)を意味する場合、答えはキークラスと値クラスの実装に完全に依存します。 – Bohemian
ボヘミアンは言ったように、深いコピーはあなたが後にしている可能性が高いです。 [ここ](http://stackoverflow.com/questions/64036/how-do-you-make-a-deep-copy-of-an-object-in-java)を参照してください。 – threenplusone