Hashset 如何避免重复

How Hashset avoids duplicates

HashSet内部调用HashMap避免实现重复

  public HashSet() {
    map = new HashMap<E,Object>();
    }

public boolean add(E e) { 
return map.put(e, PRESENT)==null;
}

例如

代码:

Set hashSet = new HashSet();
hashSet.add("Abraham");
hashSet.add("Billy");       
hashSet.add("Billy");       
System.out.println("HashSet Value " +hashSet.toString());

输出:

HashSet Value [Billy, Abraham]

Map界面中,每个key也是唯一的(java docs):

An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.

这意味着,HashMap 已经在注意避免重复键,它们是 HashSet

的元素