首頁 >Java >java教程 >如何按 Java HashMap 的值對它進行排序?

如何按 Java HashMap 的值對它進行排序?

DDD
DDD原創
2024-12-07 13:36:18331瀏覽

How Can I Sort a Java HashMap by Its Values?

在Java 中對HashMap 進行排序:基於值的技術

在Java 中,HashMap 是用於儲存鍵值對的有價值的集合,但是它們不維護特定的排序順序。要根據值對 HashMap 進行排序,我們需要採用額外的技術。

基於值的排序方法

一種方法是將 HashMap 轉換為清單使用values() 方法取得值。然後我們可以使用定義所需排序邏輯的比較器對清單進行排序。

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);

List<Person> peopleByAge = new ArrayList<>(people.values());
Collections.sort(peopleByAge, Comparator.comparing(Person::getAge));

對清單進行排序後,我們可以存取排序後的元素。

另一種方法,適合頻繁訪問,就是創建一個HashMap到有序集合的映射。例如,我們可以使用 HashMap>

考慮 TreeMap

如果首選按鍵排序,則值得考慮使用 TreeMap。 TreeMaps 根據鍵自動維護自然排序順序。

以上是如何按 Java HashMap 的值對它進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn