嗨,我知道这个问题可能很简单,但是我想知道HashSet中的虚拟对象用作后端映射中的值的原因是使用此签名。
// Dummy value to associate with an Object in the backing Map
private static final Object PRESENT = new Object();
我认为签名会是这样
private final Object PRESENT = new Object();
但是是静态的吗?为什么呢?为什么对象是静态的,而不是在静态代码上使用。
也许我想念什么吗?
当然,静电会为您提供在静电块上使用的机会,但事实并非如此。
谢谢。
关闭:@ https://stackoverflow.com/users/8198056/adrian“因此,对于每个HashSet实例,您没有相同的PRESENT对象”
为了获得更好的性能,请不要在每个HashSet实例上都创建一个对象。