2013-10-24 85 views
0

的元素假设我们有一个哈希一套类Node定义Node类的对象如下:检查哈希集包含与特定的散列值

class Node{ 
    int id; 
    public int hash(){ 
    return id; 
    } 
} 

我们想检查哈希集包含一个ID为n的元素,我们如何在没有对象的情况下做到这一点?

+0

你尝试过什么吗?它工作吗? – 2013-10-24 06:31:54

+0

其实我问的原因是我没有找到任何东西。 –

回答

1

不能,散列码的使用是HashSet类的内部实现,但Set接口不会讨论散列码。

我建议你使用一个像地图一样的替代结构,通过id存储对象,然后你可以检查某个id是否存在。

1
boolean contains = mySet.contains(new Node(n)); 
+0

这一个可以工作,但它很昂贵 –

+0

我依赖于构造函数中做了什么(请参阅,例如http://programmers.stackexchange.com/questions/149563/should-we-avoid-object-creation-in-java) – agad