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只有keySet方法吗?它没有其他方法吗?
- 你刚试过println(map)吗?
我相信有个不错的图书馆已经为你做了这类事情…但是为了坚持你已经采用的方法,Map#entrySet给你一个Object与key和value的组合。比如:
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 )); |
- 从J8链接lambda函数
- 这个答案应该被接受。可怜的礼仪!感谢您发帖。
您可以使用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 ));
} |
- 在对时间敏感的应用程序使用这种方法时我会小心,因为内部get方法是线性搜索o(n)以查找相应的值。
- get方法在内部调用使用哈希的getnode(hash(key),key)。它只在哈希冲突时执行线性搜索。