Вам нужно использовать HashMap? Если вам нужен только интерфейс карты, используйте TreeMap
Хорошо, думаю, теперь я понял ваш вопрос, вы хотите сортировать, сравнивая значения в hashMap. Вы должны написать код, чтобы сделать это, если вы хотите сделать это, как только вы сможете сортировать значения вашего hashMap:
Map people = new HashMap();
Person jim = new Person("Jim", 25);
Person scott = new Person("Scott", 28);
Person anna = new Person("Anna", 23);
people.put(jim.getName(), jim);
people.put(scott.getName(), scott);
people.put(anna.getName(), anna);
// not yet sorted
List peopleByAge = new ArrayList(people.values());
Collections.sort(peopleByAge, new Comparator() {
public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
});
for (Person p : peopleByAge) {
System.out.println(p.getName() + "\t" + p.getAge());
}
Если вы хотите часто обращаться к этому отсортированному списку, тогда вы должны вставить свой элементы в hashMap AND в отсортированном наборе (например, TreeSet) ...