我创建了一个带有颜色对象作为关键字的哈希表。我的源代码如下所示:在哈希映射中查找关键字
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