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

How to I print information from a map that has the object as the value?

I have created the following map:

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

The object has its own class with its own instance variables

I have already populated the above map with data.

I have created a printMap method, but I can only seem to print the Keys of the map

How to do I get the map to print the <Object> values using a for each loop?

So far, I've got:

for (String keys : objectSet.keySet())
{
   System.out.println(keys);
}

The above prints out the keys. I want to be able to print out the object variables too.

This question is related to java hashmap

The answer is


You may use Map.entrySet() method:

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

I'm sure there's some nice library that does this sort of thing already for you... But to just stick with the approach you're already going with, Map#entrySet gives you a combined Object with the key and the value. So something like:

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

will do what you're after.


If you're using java 8, there's also the new streaming approach.

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

There is a get method in HashMap:

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