Use Object#toString().
String string = map.toString();
Afinal, isso também é o que System.out.println(object)acontece nos bastidores . O formato dos mapas é descrito em AbstractMap#toString().
Retorna uma representação de string deste mapa. A representação da string consiste em uma lista de mapeamentos de valores-chave na ordem retornada pelo entrySetiterador da visualização do mapa , entre colchetes ("{}"). Os mapeamentos adjacentes são separados pelos caracteres "," (vírgula e espaço). Cada mapeamento de valor-chave é renderizado como a chave seguida por um sinal de igual ("=") seguido pelo valor associado. Chaves e valores são convertidos em strings como por String.valueOf(Object).