When I do System.out.println(map)
in Java, I get a nice output in stdout. How can I obtain this same string representation of a Map
in a variable without meddling with standard output? Something like String mapAsString = Collections.toString(map)
?
Use Object#toString()
.
String string = map.toString();
That's after all also what System.out.println(object)
does under the hoods. The format for maps is described in AbstractMap#toString()
.
Returns a string representation of this map. The string representation consists of a list of key-value mappings in the order returned by the map's
entrySet
view's iterator, enclosed in braces ("{}"). Adjacent mappings are separated by the characters ", " (comma and space). Each key-value mapping is rendered as the key followed by an equals sign ("=") followed by the associated value. Keys and values are converted to strings as byString.valueOf(Object)
.
toString()
isn't declared in Map
and if it were: Map
has 21 implementing classes. Which of them should be preferred over the others when the implementation actually used is only known at runtime? –
Lucknow Map
. –
Resultant You can also use google-collections (guava) Joiner class if you want to customize the print format
Joiner.on(",").withKeyValueSeparator("=").join(map);
© 2022 - 2024 — McMap. All rights reserved.