我創建了一個帶有顏色對象作爲關鍵字的哈希表。我的源代碼如下所示:在哈希映射中查找關鍵字
HashMap<Color,Integer> hm = new HashMap<Color,Integer>();
現在我想檢查,如果已經有一個顏色對象作爲HashMap中的關鍵字。所以我試過這個:
if (hm.get(colorObject) != null){
不幸的是,它返回false,雖然顏色是相同的。我在控制檯上打印顏色,始終是java.awt.Color[r=254,g=0,b=0]
。我也嘗試了從HashMap
的方法containsKey
。
那又怎麼了?我如何檢查散列表中是否有對象?
如果'Color'對象正確地實現'equals'和'hashCode'(我認爲它確實如此,因爲它是純粹的'java.awt.Color'),它應該可以工作。 – NilsH 2013-05-12 09:04:22
它可能是你錯誤地在地圖中添加了這個顏色的null。 – 2013-05-12 09:11:18