java中hashset和hashmap有什么区别

一直使用HashMap不知道HashSet的区别给个实例说明一下... 一直使用HashMap 不知道HashSet的区别 给个实例说明一下 展开
 我来答
黑马程序员
2018-08-03 · 改变中国IT教育,我们正在行动
黑马程序员
黑马程序员为大学毕业后,有理想、有梦想,想从事IT行业的年轻人改变自己的命运。黑马程序员成就IT黑马
向TA提问
展开全部
HashMap*
*HashSet*

HashMap实现了Map接口
HashSet实现了Set接口

HashMap储存键值对
HashSet仅仅存储对象

使用put()方法将元素放入map中
使用add()方法将元素放入set中

HashMap中使用键对象来计算hashcode值
HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false

HashMap比较快,因为是使用唯一的键来获取对象
HashSet较HashMap来说比较慢
希望能帮到你
匿名用户
2017-05-04
展开全部
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;
}
即插入HashSet中的值,为HashMap中的key,所有的key对应的value均为dummy。
3. HashTable继承于Dictionary类,与HashMap的主要的不同是HashTable是同步的(synchronize)并且不允许null值操作(key 和value均不能为null);在多线程访问时,不需要为他的方法实现同步,而HashMap必须为之提供外同步。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
共同好过分
2017-04-29 · TA获得超过110个赞
知道小有建树答主
回答量:323
采纳率:0%
帮助的人:124万
展开全部
Map集合,就是有一对属性值的集合,属性包含key,和value。关键字key是唯一不重复的。Map是一个有序的集合,所以查询起来速度很快。而HashSet就像是把HashMap中value去掉,说白了就是只有一个key的HashMap集合。Set是数学中定义的集合,所以元素无序, 且不能重复添加。java程序中Set集合用的不多,Map集合中的HashMap集合,List集合用的倒是不少,有时间的话不如多研究研究ArrayList,LinkedList,HashMap三个集合,希望这些对你有用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杜申克
2012-07-18
知道答主
回答量:21
采纳率:0%
帮助的人:7.6万
展开全部
set是线性结构,set中的值不能重复,hashset是set的hash实现,hashset中值不能重复是用hashmap的key来实现的。
map是键值对映射,可以空键空值。HashMap是Map接口的hash实现,key的唯一性是通过key值hash值的唯一来确定,value值是则是链表结构。
他们的共同点都是hash算法实现的唯一性,他们都不能持有基本类型,只能持有对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我邹是想知道
2012-07-18 · TA获得超过772个赞
知道小有建树答主
回答量:784
采纳率:0%
帮助的人:519万
展开全部
map.put("name", "匿名");
set.add("匿名");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式