简介
- HashSet是常用的容器类,主要特征表现为不可重复性
- 其内部实现主要用到了HashMap,利用了HashMap的键的不可重复性
- 使用HashMap的键作为其元素,同时令HashMap的所有的value为同一个Object
代码如下
import java.util.HashMap;
public class MyHashSet<E> {
private HashMap<E,Object> map;
private static final Object PRESENT = new Object();
public MyHashSet() {
map = new HashMap<>();
}
public int size() {
return map.size();
}
public void add(E e) {
map.put(e, PRESENT);
}
public void remove(E e) {
map.remove(e);
}
}
测试一下
public class MainTest {
public static void main(String[] args) {
MyHashSet<String> hashSet = new MyHashSet<>();
hashSet.add("xiaoming");
hashSet.add("xiaoming");
hashSet.add("xiaoming");
System.out.println(hashSet.size());
}
}