关于Java Map

Printing a java map Map<String, Object> - How?

本问题已经有最佳答案,请猛点这里访问。

如何从以对象为值的地图打印信息?

我创建了以下地图:

1
Map<String, Object> objectSet = new HashMap<>();

对象有其自己的类和自己的实例变量

我已经用数据填充了上面的地图。

我创建了一个printMap方法,但我似乎只能打印地图的键。

如何让地图使用for each循环打印值?

到目前为止,我有:

1
2
3
4
for (String keys : objectSet.keySet())
{
   System.out.println(keys);
}

上面打印出钥匙。我也希望能够打印出对象变量。


我相信有个不错的图书馆已经为你做了这类事情…但是为了坚持你已经采用的方法,Map#entrySet给你一个Objectkeyvalue的组合。比如:

1
2
3
for (Map.Entry<String, Object> entry : map.entrySet()) {
    System.out.println(entry.getKey() +":" + entry.getValue().toString());
}

做你想做的。

如果使用Java 8,也有新的流式方法。

1
map.forEach((key, value) -> System.out.println(key +":" + value));


您可以使用Map.entrySet()方法:

1
2
3
4
for (Map.Entry entry : objectSet.entrySet())
{
    System.out.println("key:" + entry.getKey() +"; value:" + entry.getValue());
}


hashmap中有一个get方法:

1
2
3
4
for (String keys : objectSet.keySet())  
{
   System.out.println(keys +":"+ objectSet.get(keys));
}