我搜索了这个问题并找到了使用 Map.Entry 的答案,例如 here ,但是 getValue() 方法返回了一个 Object 对象,而不是 map 中的对象类型。就像在下面的示例中一样,我需要它返回一个 User 对象,以便我可以使用该类中的方法。但是,当我尝试使用下面的 while 循环时,它永远不会离开循环。我想知道执行此操作的正确方法。
Map<String, User> users = new LinkedHashMap<String, User>();
users.put(name, user);
while(users.values().iterator().hasNext()){
currentUser = users.values().iterator().next();
currentUser.someMethod();
}
最佳答案
I was wondering the correct way to do this.
您应该使用Map.Entry
类型;您只需要提供类型参数即可与泛型一起使用:
for (Map.Entry<String,User> entry : users.entrySet()) {
// entry.getValue() is of type User now
}
关于java - 如何遍历 Java 链接 HashMap ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13735574/