オブジェクトを格納するConcurrenthashmapを使用しています。私はそのオブジェクトを取得し、ハッシュマップを変更することなくそれを変更したい。どうすればいいのですか?私はHashMapのにEmployee型のオブジェクトを追加したハッシュマップの値を変更せずにハッシュマップからオブジェクトのコピーを取得する方法
ConcurrentHashMap<String,Employee> dataStorage = new
ConcurrentHashMap<String,Employee>(10000);
dataStorage.put("Employee1", Employee1);
:後 は私のコードです。 私が行うとき、私はemployee1
を変更する場合は今
Employee employee1 = dataStorage.get("Employee1");
を取得し、更新されたオブジェクトは、どのように私はHashMap
に格納された値に影響を与えることなく、employee1
を変更しないHashMap
に格納されますか?
あなたのハッシュマップのタイプは何ですか?生の型の使用を避けるべきです。 –
nullpointer
'Employee'オブジェクトの深いコピーを作る必要があります。 – Kayaman
これを達成する唯一の方法は、オブジェクトの_deep copy_を作成することです。つまり、同じ内部状態を持つ完全に新しいオブジェクトを作成することです。 「従業員」の定義を知らなければ、具体的にあなたを助けることはできません。一般に、コピーコンストラクタまたは 'clone'メソッドを使用します。 –