@click_f

Как отсортировать HashMap?

Имеется HashMap<K, V>, где V объект содержащий поля, соответственно необходимо отсортировать хэшмап по одному из этих полей, чтобы значение ключей соответствовало порядку.
Пробовал отсортировать через treeMap и кастомный comparator. Отсортировал, но столкнулся с проблемой того, что порядок есть, но неизвестно как задать значение ключей по порядку хранения в treeMap'e. Да и хранить в treeMap'e мне не нужно. Кажется это тупо, криво и существует куда более простой способ сделать это.

UPD 2:
public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) {
    return map.entrySet()
              .stream()
              .sorted(Map.Entry.comparingByValue(Collections.reverseOrder()))
              .collect(Collectors.toMap(
                Map.Entry::getKey, 
                Map.Entry::getValue,<?>как тут вытащить поле объекта типа V </?> 
                (e1, e2) -> e1, 
                LinkedHashMap::new
              ));
}


Спасибо за любые советы.
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы