A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© java.love 中级黑马   /  2013-5-6 17:35  /  2342 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

存入Set的每个元素必须是唯一的,这也是与List不同的,因为Set不保存重复元素。HashSet能快速定位一个元素,存入HashSet的对象必须定义hashCode()。
HashSet和HashMap到底有啥不一样,在实际编程中,怎么选择用HashSet和HashMap?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

倒序浏览
路过的酱油````

哥们。建议看基础视频吧。把基础学好。
回复 使用道具 举报
Map集合,就是有一对属性值的集合,属性包含key,和value。关键字key是唯一不重复的。Map是一个有序的集合,所以查询起来速度很快。而HashSet就像是把HashMap中value去掉,说白了就是只有一个key的HashMap集合。Set是数学中定义的集合,所以元素无序, 且不能重复添加。java程序中Set集合用的不多,Map集合中的HashMap集合,List集合用的倒是不少。开发中应该是根据实际需求选择吧。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
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
回复 使用道具 举报
这个很简单啊,看你的数据结构是什么样的,就选择用相对应的集合啊,比如你的数据结构式:  Strang  name = "xxx"  ,int  age = 23,这时就可以存入map里面去了,因为这个name和age之间有关联,如果你的只想保存一个字符串的话就可以存入set里面,这个得看需求。
回复 使用道具 举报
1、HashSet底层是采用HashMap实现的。HashSet 的实现比较简单,HashSet 的绝大部分方法都是通过调用 HashMap 的方法来实现的,因此 HashSet 和 HashMap 两个集合在实现本质上是相同的。
2、HashMap的key就是放进HashSet中对象,value是Object类型的。
3、当调用HashSet的add方法时,实际上是向HashMap中增加了一行(key-value对),该行的key就是向HashSet增加的那个对象,该行的value就是一个Object类型的常量

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
HashMap存放的是键与值,是成对出现的,具有映射关系,
底层都是哈希表,
跟HashSet底层是一样的,都需要复写hashCode()和equals()方法。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报

如果问题未解决,请继续追问,如果问题解决了,请将分类改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马