gpt4 book ai didi

java - 查找 HashMap 中是否已存在对象

转载 作者:行者123 更新时间:2023-12-01 10:52:34 25 4
gpt4 key购买 nike

我正在尝试创建一个HashMap,将对象添加到一行(如果它们尚未存在于该行中)。我是这样检查的:

if (!waiting.containsKey(p)) {
waiting.put(current, p);
current++;
}

其中p是我们的对象,它用Integer存储。但是,当我运行这段代码时。它会将同一个对象多次存储在不同的整数下,如何防止这种情况?

最佳答案

那是因为您使用 object 而不是 key 调用 containsKey:

参数必须是整数

Integer lKey = 0;
if(!waiting.containsKey(lKey)){
waiting.put(current, p);
current++;
}

如果您的对象有标识符,请在 map 上使用此标识符。

if(!waiting.containsKey(p.getId())){
waiting.put(p.getId(), p);
current++;
}

否则使用 containsValue():

if(!waiting.containsValue(p)){
waiting.put(current, p);
current++;
}

但是你必须覆盖 equals 方法。

关于java - 查找 HashMap 中是否已存在对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33761175/

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