Iterate over the entrySet rather than the keySet. You get a set of Map.Entry<K, V>
which have convenient getKey()
and getValue()
methods.
That said, Java‘s standard Map implementations have an implementation of toString() that does what you want. Of course, I reckon you‘ll only get points for reimplementing it, not for cleverly avoiding it...
for (Map.Entry<K, V> entry : myMap.entrySet()) {
System.out.println("Key: " + entry.getKey() + ". Value: " + entry.getValue());
}