Нет.Вы не можете сортировать содержимое Map
.
. Сортировка возможна только по тем вещам, которые сохраняют сортировку, например List
, TreeMap
или TreeSet
.
.Map
содержимое для сортировки, просто реализуйте Comparator
(например, Comparator<Map.Entry<String, Map<Integer, Long>>>
), который способен возвращать целое число, представляющее порядок двух записей, и подавать все содержимое вашего Map
в List<Map.Entry<String, Map<Integer, Long>>>
, которыйзатем могут быть отсортированы.
private static final Comparator<Map.Entry<String, Map<Integer, Long>>> COMPI = new Comparator<>() {
@Override
public int compare(Map.Entry<String, Map<Integer, Long>> obj1,
Map.Entry<String, Map<Integer, Long>>(obj2)) {
... return 0, if obj1 equal to obj2
... return 1, if obj1 lower than obj2
... return -1, if obj1 greater than obj2
}
public static List<Map.Entry<String, Map<Integer, Long>>> sortMyMap(Map<String, Map<Integer, Long>> myMap) {
List<Map.Entry<String, Map<Integer, Long>>> l = new java.util.ArrayList<>(myMap.entrySet());
Collections.sort(l, COMPI);
return l;
}
}
Самым сложным будет правильно реализовать компаратор ...