Как изменить последовательность записей в TreeMap на основе «Ключа» - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть Map<String,List<UserVO>> studentsByCountry = new TreeMap<String,List<UserVO>>();

Отображается как:

key=CountryA , value = List<UserVO>
key=CountryB , value = List<UserVO>
key=CountryC , value = List<UserVO>

Могу ли я переставить это Map, чтобы отобразить в соответствии с displayOrder стран. Порядок отображения: страна C = 1, страна B = 2 и страна A = 3. Я хочу отобразить как

key=CountryC , value = List<UserVO>
key=CountryB , value = List<UserVO>
key=CountryA , value = List<UserVO>

Один из вариантов - добавить sortOrderNumber к ключу. For example 1_CountryC, 2_CountryB & 3_CountryA

Можно ли сделать это через обычный Java?

1 Ответ

0 голосов
/ 30 апреля 2020

Вы должны использовать new TreeMap<String, List<UserVO>>();

Map<String, List<UserVO>> sortedMap = new TreeMap<>(Collections.reverseOrder());
sortedMap.putAll(myMap);

Вдохновленный из: Сортировка по убыванию: Java Карта

Если вы хотите неупорядоченную карту вы должны использовать HashMap

TreeMap в Java является одной из реализаций интерфейса Map. Чем он отличается от другой реализации, HashMap отличается от HashMap which is unordered, TreeMap is Sorted.

...