gpt4 book ai didi

java - 当在 hashmap 中放入相同的键时,hashmap 是否会在与 equals 比较之前也比较引用?

转载 作者:行者123 更新时间:2023-12-02 03:55:21 25 4
gpt4 key购买 nike

我有一个问题,我重写 equals 方法并每次都返回 false。如果我在 hashmap 中放入相同的对象两次,根据 equals 实现,它将返回 false 并且存在具有相同对象的重复条目,但它仅覆盖现有对象。那么在与 equals 比较之前它也会比较地址引用吗?

import java.util.HashMap;
import java.util.Map;

public class MapOverrideequals {

public MapOverrideequals(int anshu) {
this.anshu = anshu;
}

int anshu;

@Override
public boolean equals(Object o) {

return false;

}

public static void main(String[] args) {

Map<MapOverrideequals, String> m = new HashMap<MapOverrideequals, String>();

MapOverrideequals mm = new MapOverrideequals(1);
MapOverrideequals mm1 = new MapOverrideequals(1);

m.put(mm, "ji");
m.put(mm, "ki");
//m.put(mm1, "ansh");

for (Map.Entry<MapOverrideequals, String> m1 : m.entrySet()) {
System.out.println(m1.getKey().anshu + " " + m1.getValue());
}

}

}

输出:1 ki

最佳答案

if (e.hash == hash && ((k = e.key) == key || key.equals(k))) 

它检查哈希和 key 引用是否相等。

关于java - 当在 hashmap 中放入相同的键时,hashmap 是否会在与 equals 比较之前也比较引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35524947/

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