Map<String , List>
ehcache からオブジェクトを取得しています。そのオブジェクトを更新したくありません。むしろ、キャッシュされたコンテンツを一時的Map
にコピーしたいのです。メインの値を変更してもコピーの値が変更されないように、 a のコピーを作成するにはどうすればよいですか。Map
Map
Map
Map
1898 次
2 に答える
4
それは本当にあなたが何をしたいかによって異なります。浅いコピーが必要な場合は、ポールの答えで十分です。または、次のことを行います。
Map<String, Object> fromEhcache = ...
Map<String, Object> copy = new HashMap<String, Object>(fromEhcache);
ただし、ディープ コピーが必要な場合、つまりマップのすべてのオブジェクトもコピーする必要がある場合は、マップ全体を繰り返し、各オブジェクトを個別にコピーする必要があります。さらに、マップ内のオブジェクトは、ある種のコピー コンストラクターをサポートする必要があります。
于 2012-06-20T14:47:52.457 に答える
1
新しいMap
インスタンスを作成してから を呼び出しputAll(Map)
、元の を渡すことができますMap
。これにより、すべてのキーと値のマッピングが新しいインスタンスにコピーされます。
Guava を使用している場合は、Maps.newHashMap(Map)
etc. を呼び出して同じ効果を 1 行で実現することもできます。
于 2012-06-20T14:41:26.193 に答える