Как известно, SortedMap ведет записи, отсортированные по ключам. Я прочитал много потоков на этом форуме и увидел много примеров, которые сортируют SortedMap по значениям. Однако, как вы знаете, когда я поместил элемент по умолчанию SortedMap, он не сортирует карту снова, просто поместите эту новую запись там, где она должна быть.Ведение сортировки по значению
Например,
SortedMap<String,Person> sortedMap = new TreeMap();
Person p1 = new Person("John",38);
sortedMap.put(p1.getName(), p1);
Person p2 = new Person("Tom",34);
sortedMap.put(p2.getName(), p2); // does not sort, maintains sorted set by comparing the other values
Person p3 = new Person("Susan",21);
sortedMap.put(p3.getName(), p3); // does not sort, maintains sorted set by comparing the other values
Во многих нитей в этом форуме, я видел много много кода, который сортирует SortedMap по значениям путем вызова метода сортировки, как:
sortedMap.sort(sortedMap.entries());
это или что-то другое метод вызывается для получения значений как отсортированных.
Но мне нужна реализация карты, которая сохраняет значения как отсортированные без метода сортировки вызовов, как я объяснил выше. Например, в приведенном выше коде я могу просто вызвать метод firstKey(); но вместо этого мне нужно вызвать метод firstValue().
Person minimumAgePerson = sortedMap.firstValue().
System.out.println(minimumAgePerson.getName()); // it should print "Susan"
SortedSet не подходит для моих requiremenets, потому что я могу поставить некоторые новые объекты (Person), ключ значение уже в карте, эти только добавленные записи должны переопределить существующие объекты (так что я нужна карта):
Person p4 = new Person("Susan",39);
sortedMap.put(p4.getName(),p4);
Person newMinimumAgePerson = sortedMap.firstValue();
System.out.println(newMinimumAgePerson.getName()); // it should print "Tom"
Есть ли реализация для выполнения этих taks или мне нужно реализовать SortedSet самостоятельно?
Зачем вам это нужно?Я полагаю, что вы выбрали неправильную структуру данных для своей задачи, так как я не представляю практически никакого приложения Карты, отсортированной по значениям, где может использоваться некоторая другая структура (например, отсортированный список или что-то еще). – bezmax