Если вы хотите отсортировать Map
по значению, а текущий ключ String
на самом деле является свойством Animal
, тогда, вероятно, лучше всего создать LinkedHashMap
на основе SortedSet<Animal>
или, возможно, List<Animal>
, который отсортирован по Collections#sort()
.
Set<Animal> animalSet = createAndSortItSomehow();
Map<String, Animal> animalMap = new LinkedHashMap<String, Animal>();
for (Animal animal : animalSet) {
animalMap.put(animal.getSomeStringYouWantAsKey(), animal);
}
Единственный недостаток в том, что вам нужно пересортировать, если вы хотите добавить новый Animal
на карту.