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

414
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

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

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

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

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

229
Закрытие JFrame

Закрытие JFrame

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

225
Помогите с onActivityResult

Помогите с onActivityResult

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

239