gpt4 book ai didi

java - ConcurrentHashMap foreach循环问题

转载 作者:搜寻专家 更新时间:2023-11-01 01:28:59 27 4
gpt4 key购买 nike

我有一个名为 users 的并发 HashMap 。我有一些用户对象,其中有一些不是 id 的整数键。我想找到具有给定 ID 的用户。因此,我检查 hashmap 的所有元素并返回用户对象(如果存在)。这是我的代码:

    for(User u : users.values()) {
logger.error("u.getId() : " + u.getId());
logger.error("id : " + id );
if( u.getId() == id ) {
logger.error("match");
return u;
}
}
logger.error("Not found: id:" + id);
for(User u : users.values()) {
logger.error(u.getPos() + ". user: " + u.getId());
}

然而,即使我的 u.getId() 和 id 相同,我也无法在我的日志中看到“匹配”。

213 匹配但是不能进入后面的if语句。这是我的日志:

enter image description here

你怎么看?

最佳答案

从 User.getId() 方法返回什么类型以及什么类型的 id 变量?如果不是原始类型,则需要使用 equals() 而不是 ==。

顺便说一下,像FindBugs 这样的静态代码分析器不错。可以发现此类错误。

关于java - ConcurrentHashMap foreach循环问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7559979/

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