Set
Set集合
无序且不能重复的集合,继承Collection 接口, 实现类: HashSet(是一个只有Key的HashMap)
构造函数
public HashSet() {
this.map = new HashMap();
}
public HashSet(Collection<? extends E> c) {
this.map = new HashMap(Math.max((int)((float)c.size() / 0.75F) + 1, 16));
this.addAll(c);
}
public HashSet(int initialCapacity, float loadFactor) {
this.map = new HashMap(initialCapacity, loadFactor);
}
public HashSet(int initialCapacity) {
this.map = new HashMap(initialCapacity);
}
HashSet(int initialCapacity, float loadFactor, boolean dummy) {
this.map = new LinkedHashMap(initialCapacity, loadFactor);
}
创建HashSet的过程实际在构造方法是调用HashMap的初始化 过程,由于HashMap不允许有重复的key值,所以Set没有重复元素
add方法
public boolean add(E e) {
return this.map.put(e, PRESENT) == null;
}
由于HashMap
的key
是不能重复的,所以每当有重复的值写入到HashSet
时, value
会被覆盖,但key
不会受到影响,这样就保证了HashSet
中只能存放不重复的元素。
Last updated
Was this helpful?