HashSet是通过HashMap实例实现的

sap*_*sap 1 java collections hashset

我想知道因为HashSet是通过HashMap实例实现的,所以将用于将数据放入HashSet的密钥是什么.

我浏览了http://www.coderanch.com/t/251832/Programmer-Certification-SCJP/certification/Difference-HashMap-HashSet ...

我的理解是正确的..任何人都可以帮助我更好地理解它

dan*_*ben 6

从来源:

// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();


public boolean add(E e) {
    return map.put(e, PRESENT)==null;
}
Run Code Online (Sandbox Code Playgroud)

  • @dertoni:当然,我没有写它,但我的猜测是他们想要允许HashMap的不同后备实现,这不能保证允许空值. (2认同)

Cha*_* Ma 5

由于映射的键是集合,因此键将是进入散列集本身的对象.

  • 地图的键始终映射到相同的值,因此所有地图键都必须是唯一的.所以根据定义,它们是固定的. (2认同)