Impresión multilínea bonita de colecciones (anidadas) en Java

Quiero poder (bastante) imprimir el contenido de mis mapas.

Deben tener líneas nuevas y sangría en lugar de en una sola línea; ignorando los métodos toString de colecciones / iterables / etc; y recursiva en colecciones anidadas.

Esto es especialmente interesante para mí con respecto a los mapas. Supongo que JSON podría ser relevante, pero no quiero ir tan lejos, o al menos, no quiero que mi código tenga que saber sobre JSON solo para que yo lo imprima. ¿Cuáles son mis opciones (aparte de escribir esto yo mismo)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta