Как сортировать HashMap по значениям?

420
28 сентября 2017, 12:52

Как сортировать HashMap по значениям?

HashMap<GridPane, Integer> hashmap = new HashMap<>();

Создал TreeMap из LinkedHashMap, но ругается на мою конструкцию.

Answer 1

Используйте Collections.sort(List<T> list, Comparator<? super T> c).

Collections.sort( list, new Comparator<Map.Entry<K, V>>() {
    @Override
    public int compare(Map.Entry<K, V> o1, Map.Entry<K, V> o2) {
        return (o1.getValue()).compareTo(o2.getValue());
    }
});

Получить List можно передав в конструктор map.getEntrySet() После того как вы получите отсортированный список добавьте каждый элемент по очереди в Map

Answer 2

HasMap не даст отсортировать элементы внутри себя, т.к. это не упорядоченная коллекция и расположение элементов в нем зависит от их хэшкодов. Используйте ThreeMap в конструктор которого можно передать компаратор который будет производить сравнение элементов. Сортировка будет производиться по ключу.

READ ALSO
автоматизация платежей android

автоматизация платежей android

планируем доску обьявлений для не очень большего городас реализацией то справляемся хотя и мы начинающие

298
JAVA открытие другого jframe при нажатии на jbutton

JAVA открытие другого jframe при нажатии на jbutton

Хочу, чтобы при нажатии на jbutton "Test epta" открывалось 2-ое окноРеализовал вот так, но так не работает )) Подскажите, что не так делаю

237
Закрытие JFrame

Закрытие JFrame

Есть JFrame, у него вроде как есть метод

233
Помогите с onActivityResult

Помогите с onActivityResult

Есть авторизация в приложении с помощью VK SDK, щас надо сделать авторизацию с помощью GoogleSignInApi

246