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.
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));
}
Source: Stackoverflow.com