Como trocar chaves e valores em um mapa elegantemente

Eu já sei como fazê-lo da maneira mais difícil e consegui fazê-lo funcionar - iterando as entradas e trocando "manualmente". Mas eu me pergunto se, como tantas tarefas, essa pode ser resolvida de uma maneira mais elegante.

eu liesta postagem, infelizmente, não apresenta soluções elegantes. Também não tenho possibilidade de usar Guava BiMaps sofisticados ou qualquer coisa fora do jdk (a pilha de projetos já está definida).

Eu posso assumir que meu mapa é bijetivo, btw :)