0

我有一个服务器树形图:

TreeMap server_map = new TreeMap<String, Server>() ;

我想遍历整个地图以打印所有服务器。使用这种循环:

for (Map.Entry<String, Server> entry : server_map.entrySet())
{
    System.out.println(entry.getKey() + "/" + entry.getValue().foo);
}

这不起作用,因为有一个未解决的编译问题:

类型不匹配:无法从元素类型 Object 转换为 Map.Entry

是否有可能迭代服务器的树形图?

4

3 回答 3

3

将声明更改为:

TreeMap<String, Server> server_map = new TreeMap<String, Server>() ;
于 2013-06-10T00:44:20.083 回答
0

另请注意,由于 java7 不需要在右侧声明泛型类型,您可以使用菱形运算符,节省一些编写工作。

TreeMap<String, Server> server_map = new TreeMap<>() ;
于 2013-06-10T01:33:49.297 回答
0

在 Java 8 中,您可以这样做:

TreeMap server_map = new TreeMap();
for (Map.Entry entry : server_map.entrySet()){
 System.out.println(entry.getKey() + "/" + ((Server)entry.getValue()).foo);
}

我刚刚通过执行类似的操作解决了与此类似的问题。如果您使用<String, Server>它会希望您使用 java 1.5 语法的方式。

于 2015-06-19T18:36:59.613 回答