Имеется
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
));
}
Спасибо за любые советы.