Thanks @Sweeper It's always obvious once you've figured out the answer.
int size = ...
var a = myHashMap.entrySet()
.stream()
.sorted(Map.Entry.comparingByValue(Comparator.reverseOrder()))
.map(e -> String.format("%s %.3f", e.getKey(), 100.0 * e.getValue() / size))
.toList();