sah*_*sal 12 java hashmap hashset
HashSet是使用HashMap实现的,当我们向HashSet添加任何e1时,如果e1不在集合中,它会在HashMap中添加(e1,new Object()).我的问题是为什么他们插入新的Object(),当他们可以插入像(e1,null),这是更优化的方法,因为没有创建新的对象.在这里插入空值有什么缺点吗?
rge*_*man 13
每次新密钥进入地图时,A HashSet都不会添加新内容.它确实使用了一个,但每次都使用相同的.该值在源代码中命名.ObjectputObjectObjectPRESENTHashSet
该add方法调用put(key, PRESENT)内部HashMap.该remove方法调用remove(key)内部HashMap,但必须返回boolean指示密钥是否存在的指针.如果null存储为值,则HashSet需要先调用containsKey,然后remove确定密钥是否存在 - 额外开销.这里只有一个内存开销Object,这是非常小的.
| 归档时间: |
|
| 查看次数: |
1651 次 |
| 最近记录: |