如何在Java中对哈希图进行排序
我们如何对 ?HashMap<key, ArrayList>
我想根据 .ArrayList
我们如何对 ?HashMap<key, ArrayList>
我想根据 .ArrayList
你必须使用哈希地图吗?如果只需要地图界面,请使用树状图
如果要通过比较哈希映射中的值进行排序。您必须编写代码才能执行此操作,如果要执行此操作,则可以对HashMap的值进行排序:
Map<String, Person> 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<Person> peopleByAge = new ArrayList<>(people.values());
Collections.sort(peopleByAge, Comparator.comparing(Person::getAge));
for (Person p : peopleByAge) {
System.out.println(p.getName() + "\t" + p.getAge());
}
如果要经常访问此排序列表,则可以将元素插入 到 中,尽管集合和列表的语义略有不同。HashMap<TreeSet<Person>>
按 hasmap 键排序的列表:
SortedSet<String> keys = new TreeSet<String>(myHashMap.keySet());
按哈希映射值排序的列表:
SortedSet<String> values = new TreeSet<String>(myHashMap.values());
如果映射值重复:
List<String> mapValues = new ArrayList<String>(myHashMap.values());
Collections.sort(mapValues);
祝你好运!