黑马程序员技术交流社区

标题: 关于Set和Map [打印本页]

作者: java.love    时间: 2013-5-6 17:35
标题: 关于Set和Map
存入Set的每个元素必须是唯一的,这也是与List不同的,因为Set不保存重复元素。HashSet能快速定位一个元素,存入HashSet的对象必须定义hashCode()。
HashSet和HashMap到底有啥不一样,在实际编程中,怎么选择用HashSet和HashMap?
作者: 殇_心。    时间: 2013-5-6 18:08
路过的酱油````

哥们。建议看基础视频吧。把基础学好。

作者: freeboyhrk    时间: 2013-5-6 18:26
Map集合,就是有一对属性值的集合,属性包含key,和value。关键字key是唯一不重复的。Map是一个有序的集合,所以查询起来速度很快。而HashSet就像是把HashMap中value去掉,说白了就是只有一个key的HashMap集合。Set是数学中定义的集合,所以元素无序, 且不能重复添加。java程序中Set集合用的不多,Map集合中的HashMap集合,List集合用的倒是不少。开发中应该是根据实际需求选择吧。
作者: 柳汉杰    时间: 2013-5-6 18:39
Hashtable是同步的。   
HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null,即null   value和null   key。,但是将HashMap视为Collection时(values()方法可返回Collection),其迭代子操作时间开销和HashMap的容量成比例。因此,如果迭代操作的性能相当重要的话,不要将HashMap的初始化容量设得过高,或者load   factor过低。   

详情可以参考这篇文章我觉得不错
http://www.blogjava.net/fisher/archive/2006/12/13/87398.html
作者: 一直在路上    时间: 2013-5-6 18:48
这个很简单啊,看你的数据结构是什么样的,就选择用相对应的集合啊,比如你的数据结构式:  Strang  name = "xxx"  ,int  age = 23,这时就可以存入map里面去了,因为这个name和age之间有关联,如果你的只想保存一个字符串的话就可以存入set里面,这个得看需求。
作者: 余雷    时间: 2013-5-6 19:14
1、HashSet底层是采用HashMap实现的。HashSet 的实现比较简单,HashSet 的绝大部分方法都是通过调用 HashMap 的方法来实现的,因此 HashSet 和 HashMap 两个集合在实现本质上是相同的。
2、HashMap的key就是放进HashSet中对象,value是Object类型的。
3、当调用HashSet的add方法时,实际上是向HashMap中增加了一行(key-value对),该行的key就是向HashSet增加的那个对象,该行的value就是一个Object类型的常量
作者: 孙金鑫    时间: 2013-5-7 01:43
HashMap存放的是键与值,是成对出现的,具有映射关系,
底层都是哈希表,
跟HashSet底层是一样的,都需要复写hashCode()和equals()方法。
作者: 黄玉昆    时间: 2013-5-7 21:54

如果问题未解决,请继续追问,如果问题解决了,请将分类改为“已解决”,谢谢




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