黑马程序员技术交流社区

标题: HashSet 和HashMap 的区别 [打印本页]

作者: nagi    时间: 2014-9-16 10:26
标题: HashSet 和HashMap 的区别
今天遇到了一个问题, HashSet和HashMap的区别!请求帮助?
作者: 杨列振    时间: 2014-9-16 10:41
1、HashSet底层是采用HashMap实现的。HashSet 的实现比较简单,HashSet 的绝大部分方法都是通过调用 HashMap 的方法来实现的,因此 HashSet 和 HashMap 两个集合在实现本质上是相同的。
2、HashMap的key就是放进HashSet中对象,value是Object类型的。
3、当调用HashSet的add方法时,实际上是向HashMap中增加了一行(key-value对),该行的key就是向HashSet增加的那个对象,该行的value就是一个Object类型的常量。
作者: haixiaoxiao    时间: 2014-9-16 14:35
学习了  
作者: 张晓永    时间: 2014-9-16 15:46
hashSet是从hashMap中分离出来的,hashMap通过键保证唯一和hashSet保证唯一的方法是一样的,只不过hastMap比hashSet多了一个和键相对应的值而已
作者: 李春丽    时间: 2014-9-16 15:57
我的总结如下:
HashSet 和 HashMap 的区别 》》》
首先 Hash 代表哈希表,用到哈希值。然后考虑 Set 和 Map 的区别特性就可以了。

Set : 无序,不可以重复元素。
HashSet:数据结构是哈希表。线程是非同步的。
        保证元素唯一性的原理:判断 HashCode 是否相同,
        如果相同,还会继续判断元素的 equals 方法,是否为 true 。

Map 集合概述:该集合存储键值对。一对一对往里存。而且要保证键的唯一性。
         和 Set 合很像。其实,Set 集合底层就是使用了 Map 集合。
HashMap :底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。


作者: 备战    时间: 2014-9-16 16:02

加油,学习。
作者: Allencheng    时间: 2014-9-16 17:55
*HashMap*        *HashSet*
HashMap实现了Map接口        HashSet实现了Set接口
HashMap储存键值对        HashSet仅仅存储对象
使用put()方法将元素放入map中        使用add()方法将元素放入set中
HashMap中使用键对象来计算hashcode值        HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以equals()方法用来判断对象的相等性,如果两个对象不同的话,那么返回false
HashMap比较快,因为是使用唯一的键来获取对象        HashSet较HashMap来说比较慢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2