我创建了一个遍历我的循环HashMap
。然后,我检查当前密钥的名称(A)是否等于可能添加的密钥(B)。当密钥A和密钥B的名称相同时,它们的哈希码不一定相等。因此,我通过将它们转换为字符串(覆盖.equals())来检查它们是否相等。该代码正在运行,但是大多数方法更简洁易行。
这是我当前的代码:
for (HashMap.Entry<Identifier, SetInterface<BigInteger>> entry : idAndSet.entrySet()) {
if (entry.getKey().isEqual(identifier)) {
factor = entry.getValue();
return factor;
}
}
当密钥A和密钥B的名称相同时,它们的哈希码不一定相等。
那不是一个好主意。任何充当键的类都应覆盖equals和hashCode。同时使该类不可变也是一个好主意(否则您可能会遇到一些困难的调试工作)。
完成后,您就可以
Map<Indentifer, Object> map...;
Object value = map.get(id);
// or as of Java 8+
Object value = map.getorDefault(id, someDefaultValue);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句