我有TreeMap
自定義Comparator
。我想更新地圖的其中一個值,但如果Comparator
檢查的字段發生更改,Map是否保持其順序?如何更新地圖中的值,維護訂單
回答
您不應該修改存儲在地圖中的密鑰。或者至少不修改用於實施equals()
和hashCode()
(在HashMap的情況下)或compareTo()
/compare()
(在SortedMap的情況下)的任何字段。
這將使地圖處於不一致的狀態,並且您不能指望它在執行此操作後可靠地工作。
當然,您可以從地圖上刪除鍵,修改它,然後重新插入它。
但是你最好使用不可改變的類型作爲你的地圖的按鍵,以避免在腳中拍攝自己。
是的,我想這就是解決方案。我可以用相同的鍵插入修改的對象,它將更新地圖。謝謝。 – user1911149
如果你所做的只是修改_value_ - 而不是關鍵 - 那麼你不必做任何事情。 –
@Louis Wasserman但是'Map'中的位置取決於值,所以'Map'需要更新。 – user1911149
- 1. 維護訂單的鍵/值集合
- 2. 如何維護訂單優先級
- 3. Tensorflow:批量維護訂單
- 4. BCP維護插入訂單
- 5. 在R中維護原始訂單
- 6. 如何在DataGrid的SelectedItems中維護訂單?
- 7. 如何更新地圖中的值?
- 8. DownloadStringAsync維護訂單的多個URL
- 9. Parallel.Foreach維護收集訂單嗎?
- 10. 在Tkinter堆疊訂單維護
- 11. 架構:維護訂單歷史
- 12. 通過搜索維護訂單
- 13. DB架構:維護項目訂單
- 14. 使用0值顯示缺失的行以維護訂單
- 15. Sphinxsearch維護sql的訂購
- 16. 頁面刷新時如何維護表單請求值
- 17. Prestashop如何在BackOffice中更改訂單時如何更新訂單
- 18. 如何使用UUID維護廣告訂單
- 19. 如何從data.frame創建列表後維護訂單
- 20. 當我更改地圖的大小時,維護Google地圖的中心
- 21. 如何更新列表中的項目並維護其索引?
- 22. 更新地圖值
- 23. On Button單擊,維護或更改同一活動中的值
- 24. C3堆疊圖表維護數據訂單
- 25. 如何強制傳單更新地圖?
- 26. 如何在Spring中動態地維護,更新應用程序屬性?
- 27. 維護和更新連接在二維圖
- 28. 試圖更新總訂單清單
- 29. 如何從任何地方更新訂單項元數據?
- 30. Magento更新訂單送貨地址
如何更新值?你是用'put'來替換一個值,還是直接修改'Object'? – Dancrumb
您更改了密鑰或值? – Kent
希望您沒有使用比較器的破碎怪物,它對輸入值進行排序。 –