gpt4 book ai didi

java - Java如何判断Hashmap key的唯一性?

转载 作者:行者123 更新时间:2023-12-01 07:05:30 29 4
gpt4 key购买 nike

我想维护一个对象列表,以便列表中的每个对象都是唯一的。而且我想在某个时刻检索它。对象有数千个,我无法修改它们的源来添加唯一的 ID。此外,hascode 也不可靠。

我的方法是利用 map 的关键独特性。比如说维护一个 map :

HashMap<Object,int> uniqueObjectMap .

我将添加对象作为映射的键,并设置一个随机整数作为值。但是当用作键时,java 如何确定对象是否唯一呢?

说,

List listOne;
List listTwo;
Object o = new Object;
listOne.add(o);
listTwo.add(o);

uniqueObjectMap.put(listOne.get(0),randomInt()); // -- > line 1
uniqueObjectMap.put(listTw0.get(0),randomInt()); // --> line 2

第 2 行是否会给出唯一的键冲突错误,因为两者都引用同一个对象 o ?

编辑

如果会unqiueObjectMap.containsKey(listTwo.get(0))返回真?这里如何确定对象相等?逐个字段的比较完成了吗?我可以依靠它来确保映射中仅维护任何类型对象的一份副本作为键吗?

最佳答案

Will line 2 give an unique key violation error since both are referring to the same object o ?

。如果发现某个键已存在,则其值将被新值覆盖

接下来,HashMap 有一个单独的 hash() 方法,该方法将补充哈希函数应用于(关键对象的)给定 hashCode,从而防止质量较差的哈希函数。

关于java - Java如何判断Hashmap key的唯一性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25638189/

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