gpt4 book ai didi

java - 通过 Hashmap 改进 Loop 中的 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:37 25 4
gpt4 key购买 nike

我创建了一个循环来遍历我的HashMap。然后我检查当前 key (A) 的名称是否等于可能添加的 key (B)。当 key A 和 key B 的名称相等时,它们的哈希码不一定相等。因此,我通过将它们转换为字符串(覆盖 .equals())来检查它们是否相等。该代码可以正常工作,但大多数情况下有一种更干净、更简单的方法来做到这一点。

这是我当前的代码:

for (HashMap.Entry<Identifier, SetInterface<BigInteger>> entry : idAndSet.entrySet()) {
if (entry.getKey().isEqual(identifier)) {
factor = entry.getValue();
return factor;
}
}

最佳答案

key A 和 key B 的哈希码在名称相同时不一定相等。

这不是一个好主意。任何充当键的类都应该重写 equals 和 hashCode。使类不可变也是一个好主意(否则您最终可能会遇到一些困难的调试)。

一旦你这样做了,你就可以这样做


Map<Indentifer, Object> map...;
Object value = map.get(id);

// or as of Java 8+

Object value = map.getorDefault(id, someDefaultValue);

关于java - 通过 Hashmap 改进 Loop 中的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58365826/

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