use*_*021 16 java loops hashmap
我搜索了这个问题并找到了像这里一样使用Map.Entry的答案,但是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();
}
Run Code Online (Sandbox Code Playgroud)
das*_*ght 23
我想知道这样做的正确方法.
你应该使用这种Map.Entry类型; 您只需要提供与泛型一起使用的类型参数:
for (Map.Entry<String,User> entry : users.entrySet()) {
// entry.getValue() is of type User now
}
Run Code Online (Sandbox Code Playgroud)
use*_*421 17
你误用了Iterator,你省略了泛型规范.
Iterator<User> it = users.values().iterator();
while (it.hasNext())
{
User currentUser = it.next();
currentUser.someMethod();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44881 次 |
| 最近记录: |