gpt4 book ai didi

java - Java Map 中的相同对象 ID

转载 作者:行者123 更新时间:2023-12-01 21:17:38 25 4
gpt4 key购买 nike

试图了解当 Class 对象用作集合元素时 HashSet 的内部工作原理。这是我所做的 => Code <=。发现映射中所有值的对象 ID 都相同。

Variable这是什么意思 ?它们不应该不同吗,因为我创建了 Class Element 的新实例?

最佳答案

HashSet 由内部 HashMap 支持,其中键是 Set 的元素,值都是对相同的虚拟对象。因此,您在 map 中看到的所有值都引用同一个对象。

例如,请参阅 add() 的实现:

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

其中 PRESENT 是:

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

Shouldn't they be different, as i have created new instances of Class Element ?

只有键应该不同。

关于java - Java Map 中的相同对象 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39688134/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com