use*_*737 2 java null hashmap data-structures
我对HashMap有关使用的表现有疑问equals.当我首先进行空检查时,如下所示:
public boolean equals(final Object obj) {
// object must be Test at this point
if (obj == null) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
如果我没有,那会快一点.
因此,创建HashMap- 我只是想知道 - 与元素中的元素相比有哪些元素HashMap.当我插入或插入时,我从不插入任何null物体.
谢谢!
我真的不会担心单个if语句的成本 - 这是一个微优化,除非你有证据表明它是你程序的瓶颈,否则你绝对不应该担心它.几乎普遍地,计划的放缓是由于较大规模的低效率而不是个别的陈述.
有了这个 - HashMap可以比较存储在a中的对象,但是HashMap想要比较它们.这通常在插入,删除和查找期间完成,以便HashMap知道两个对象是否相等,但是也可以在重新散列期间完成(因为对象通过其重新分配HashMap).实现甚至可能尝试比较您的对象null,然后进行某种疯狂的积极缓存或合并方案,以提高内存使用率.你真的不能承担太大,因为合同的一部分,HashMap是equals必须为你的对象.
此外,如果你不支持null的equals,那么你就打破了合同equals的规定中Object,其中明确提到,传递null应返回false.如前所述,除非您有可验证的数据表明它是一个瓶颈,否则这几乎肯定是一个非常糟糕的想法.
希望这可以帮助!