首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

HashSet的兑现

2014-06-07 
HashSet的实现当new HashSet的时候,HashSet的构造方法如下:public HashSet() {map new HashMap

HashSet的实现
当new HashSet的时候,HashSet的构造方法如下:

public HashSet() {map = new HashMap<E,Object>();}
也就是说,hashSet的内部是用HashMap实现的。
当向set add一个对象的时候,源码如下:
public boolean add(E o) {return map.put(o, PRESENT)==null;}
因为Map的key是不能重复的,所以说Set内的元素是没有重复的, PRESENT只是一个Object类型的常量。
因为HashSet是基于HashMap而实现的,所以每个对HashSet操作的method内部都是对map的操作。
比如iterator():
public Iterator<E> iterator() {return map.keySet().iterator();}
contains(Object):
public boolean contains(Object o) {return map.containsKey(o);}
等等。

热点排行