Это документация для TreeMap, взятая из Javadoc:
public class TreeMap extends AbstractMap
implements NavigableMap, Cloneable, Serializable
A Red-Black tree based NavigableMap implementation. <b>The map is sorted according
to the natural ordering of its keys</b>, or by a Comparator provided at map creation
time, depending on which constructor is used.
В вашем случае ключи будут строками, и вы должны ожидать, что итерация покажет карту, которая будет отсортирована в соответствии с их «естественным порядком». Вот пример вывода, сгенерированного TreeMap, состоящего из ключей String и значений Integer:
Map<String, Integer> map = new TreeMap<String, Integer>();
map.put("Hello", Integer.valueOf(8));
map.put("Abraham", Integer.valueOf(81));
map.put("Smell", Integer.valueOf(-1));
map.put("Carpet", Integer.valueOf(4));
map.put("Sex", Integer.valueOf(23));
for(String key: map.keySet()) {
System.out.printf("Map entry %s: %d\n", key, map.get(key));
}
Выход:
Map entry Abraham: 81
Map entry Carpet: 4
Map entry Hello: 8
Map entry Sex: 23
Map entry Smell: -1
Как видите, перебор ключей карты дает упорядоченный результат. Этот порядок определяется естественным порядком строки. К сожалению, вы не можете реализовать SortedMap, который сортирует по значениям, что, как я полагаю, вы хотите сделать. Однако вы можете отсортировать записи на карте за ее пределами. Подробности смотрите в этом другом сообщении SO: TreeMap сортировка по значению .