私のプログラムにはConcurrentMap<Integer, MyObj>
があります。 キーがわかっていればMyObj
を変更できますか?新しいものを削除して入れないで、MyObj
?マップ内の項目を削除せずに変更することはできますか?
0
A
答えて
3
だけでなく、オブジェクトへの元の参照を保持している場合でも、それを変更できます。
MyObject o = new MyObject();
myMap.put("key", o);
o.setName("foo");
myMap.get("key").getName(); //will return "foo"
myMap.get("key").setName("bar");
myMap.get("key").getName(); //will return "bar"
o = null; //this applies only for your local reference, not for the map
myMap.get("key").getName(); //will STILL return "bar"
4
「変更」の定義によります。内部の何かをMyObj
に変更したいのであれば、そのオブジェクトが変更可能であることは確かです。
ConcurrentMap<Integer, MyObj> map = /* snip */;
map.get(someKey).callMutatorMethod();
あなたは完全に新しいインスタンスを持つオブジェクトを交換したい場合は、ちょうどそのような値が存在する場合は、既存のマップされた値が上書きされますされ、Map#put()
を呼び出すことができます。
+1
「MyObj」への参照がある場合、その状態を変更することはできません。 'ConcurrentMap'は、マップ自体(puts、deletesなど)の変更が他のスレッドの変更に悩まされないようにします。 – oconnor0
0
はいできます。マップは単にオブジェクトへの参照を保持します。マップを更新することなくオブジェクトを変更できます。
Map<Integer, MyObj> myMap = new ConcurrentMap<Integer, MyObj>();
myMap.put(1, new MyObj());
MyObj obj = myMap.get(1);
obj.setFoo("Foo");
関連する問題
- 1. Javascriptの項目を削除せずに配列内の重複項目をユニークな項目に変換する
- 2. Trello API:チェックリスト項目を変更/削除できません
- 3. recyclerviewで前の項目を削除することはできますか?
- 4. は配列項目を削除できません。間違った項目は常に削除されます
- 5. カラムを削除せずにNOT NULLからNULLに変更することはできますか?
- 6. リストとsqliteファイル内のリストビュー項目を削除するには
- 7. QListWidgetから項目をウィジェットの外にドロップすることでその項目を削除しますか?
- 8. mysqlデータベースから項目を削除せずにカスタムリストビューから項目を削除するにはどうすればいいですか?
- 9. JSを使用せずにASP.NET MVCでリストから項目を削除する
- 10. データソースを更新せずに剣道グリッドから項目を削除
- 11. イベントリスナーを削除せずに無効にすることはできますか?
- 12. Documentum - リレーション内のレコードを削除せずに子レコードを削除することができます
- 13. FormCollectionから値を削除せずにドロップダウンリスト項目を無効にする
- 14. NativeScriptでリロードせずにListViewの項目を削除する、iOSのみ
- 15. 元のリストを変更せずに、項目を削除したリストと変数を等しくするにはどうすればよいですか?
- 16. ブックマーク項目の追加/削除はできません。
- 17. タブ項目を削除するには
- 18. 削除項目フックスウィフトはここ
- 19. 意図した例外を削除せずにエラーポインタを削除することはできますか?
- 20. オブジェクトを削除せずにオブジェクトを削除することはできますか?
- 21. カーソルの位置を変更せずにAce Editor内の値を更新することはできますか?
- 22. ベクトルから項目を削除するときのValgrindエラー
- 23. ListViewから項目を削除するときのVBAランタイムエラー35600
- 24. テーマappceleratorを変更せずにタイトルバーを削除するには?
- 25. Select2:項目のどこかをクリックしたときに項目を選択すると、項目の一部が削除されます。
- 26. Perl:配列項目の削除と配列のサイズ変更
- 27. Androidの各リストビュー項目の削除ボタンの表示と消滅をアニメートすることはできますか?
- 28. DynamoDB Mapperを使用して項目を最初にロードせずに削除できますか?
- 29. ArrayListから項目を削除しているときに、JListから項目を削除するにはどうすればよいですか?
- 30. 追加データとダイナモDB内の項目を削除する
それは良い、私はそれを知っていませんでした。ありがとう。 – marxin