Java知识:HashSet详解

来源:互联网 发布:图片识别手写数字算法 编辑:程序博客网 时间:2024/06/06 03:49

HashSet如何实现的?

它是由HashMap实现的,不保证元素的顺序,而且HashSet允许使用 null 元素。

HashSet是非同步的。

如果想要在多线程中使用HashSet可以使用 Collections.synchronizedSet 方法来“包装” set
Set s = Collections.synchronizedSet(new HashSet(…));

HashSet里的HashMap和普通的HashMap有什么不同吗?

因为HashSet中只需要用到key,而HashMap是key-value键值对;
所以,向map中添加键值对时,键值对的值固定是PRESENT

private static final Object PRESENT = new Object();
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
HashSet里面的每个HashMap里面的Value都是PRESENT
普通的HashMap里面Value是随意的。

理解了HashMap就能很快的理解HashSet

参考资料:
http://www.cnblogs.com/skywang12345/p/3311252.html

原创粉丝点击