HashMap和HashSet的区别

 我来答
qq277155829
2017-03-27 · TA获得超过235个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:114万
展开全部
hash是一种很常见也很重要的数据结构,是用hash函数根据键值(key)计算出存储地址,以便直接访问。由完美hash函数(即键值和地址是一一对应的)计算出的地址,在访问时,时间复杂度为O(1)。
Java的Object对象提供了hashCode()这个方法,该方法返回一个hash值。对于变量,该方法一般返回该变量的内存地址。在使用java的HashMap对象时,该方法和equals()方法一起使用,要确保equals()返回true时,hashCode()能返回同样的值;实现这点,一般要重写对象的hashCode()/equals()方法。
关于hash,java提供了三个类HashMap, HashSet, HashTable,他们的区别如下:
1. HashSet、HashTable实质使用HashMap实现的;
2. 在HashSet中,有如下定义:

[java] view plain copy
private final static Object dummy = new Object();
boolean add(Object obj){
return map.put(obj, dummy) == null;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式