Сортировка ключей по алфавиту в LinkedHashMap

У меня есть LinkedHashMap, и я хочу отсортировать его ключи (которые являются строками) в алфавитном порядке. Однако он не будет работать с методом Collections.sort(), поскольку он не будет принимать ни сам LinkedHashMap, ни набор ключей LinkedHashMap.

Мой единственный вариант - отсортировать их вручную при заполнении LinkedHashMap, но перед этим я хотел узнать, знает ли кто-нибудь лучший способ.


person ImNoProGrammer    schedule 17.08.2015    source источник
comment
Что значит рассортировать ключи? Вы хотите перебирать записи в алфавитном порядке ключей или буквально извлекать ключи и сортировать их?   -  person Bohemian♦    schedule 17.08.2015
comment
мне было бы достаточно перебора записей в алфавитном порядке   -  person ImNoProGrammer    schedule 17.08.2015


Ответы (1)


Лучше использовать карту, которая поддерживает порядок, например TreeMap.

Однако, если у вас есть сломанный дизайн, который вы не можете исправить, вы можете сделать это.

 LinkedHashMap<String, String> map = ...
 TreeMap<String, String> copy = new TreeMap<>(map);
 map.clear();
 map.putAll(copy);

Это сработает, но если вы добавите ключ, ваша карта больше не будет сортироваться.

person Peter Lawrey    schedule 17.08.2015