我有一個HashMap<MyClass,ArrayList<WeakReference<MyObject>>>
變量。我可以比較java中的WeakReference變量嗎?
儘管weakrefences已從hashmap中清除,但我還希望能夠從HashMap中手動刪除「MyObject」。這是一箇中心聽衆對象。
當我將項目添加到鏈接到主HashMap的鍵的值ArrayList中,我使用.add(new WeakReference<MyObject>(owner))
,當我想從外部的地方去掉「自我」,我送「所有者」作爲參數,是真正的對象。那麼我怎樣才能從我的hashmap中手動刪除這個對象呢?我可以使用從傳入所有者參數生成的新WeakReference進行查詢嗎?舊的"new WeakReference<MyObject>(owner)"
和新的"new WeakReference<MyObject>(owner)"
是否相等?所以我可以從hashmap中刪除它。
用於存儲弱引用的關鍵是什麼?使用相同的鍵從地圖中刪除弱引用實例。 – 2013-03-01 09:16:38
他不是在地圖上調用'add',而是在'List'上調用。 – 2013-03-01 09:18:43
@NarendraPathai key是一個定義偵聽器類型的枚舉。我無法刪除主鍵。我必須從ArrayList中移除偵聽器。因此,假設有許多鍵如「A_CHANGED,B_CHANGED」。 A_CHANGED可以有不限數量的不同對象,它們監聽A_CHANGED事件。所以我不能刪除A_CHANGED中的所有對象。 – frankish 2013-03-01 09:20:34