【发布时间】:2012-12-06 01:33:12
【问题描述】:
我搜索了这个问题并找到了使用 Map.Entry 的答案,例如 here,但是 getValue() 方法返回了一个 Object 对象,而不是地图中的对象类型。就像下面的示例一样,我需要它返回一个 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();
}
【问题讨论】:
-
Map.Entry方式是您需要键和值时的正确方式。如果getValue()的编译时返回类型是Object,那么您很可能在Map.Entry声明中缺少类型参数。 -
你有没有尝试调试它,看看它卡在哪里?
-
@MattBall 好的,我会再试一次。
-
@loveToCode 是的,它只是通过 while 循环继续运行,并且 .next() 方法每次都返回相同的对象