我搜索了这个问题并找到了使用Map.Entry的答案,例如这里,但是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
声明中缺少类型参数。 - Matt Ball