HashSet的实现
HashSet在开发过程中是很长用的,我们很多时候都会借住其不能存储重复内容进行去重;可是很多时候,我们都忽略了其实现原理。如果没有HashSet我们应该使用什么去实现同样的功能呢?
我们看看源码,可以发现原来HashSet就是对HashMap的封装。
public class HashSet<E>
extends AbstractSet<E>
implements Set<E>, Cloneable, java.io.Serializable
{
static final long serialVersionUID = -5024744406713321676L;
private transient HashMap<E,Object> map;
// 固定的一个值
private static final Object PRESENT = new Object();
/**
* 创建一个空的HashSet,存储对象HashMap,默认容量是16,加载因子时0.75.
*/
public HashSet() {
map = new HashMap<>();
}

浙公网安备 33010602011771号