hashmap怎么排序

小億
162
2024-01-14 03:21:07

HashMap是一個(gè)無(wú)序的集合,它不支持排序。但是可以根據(jù)HashMap的鍵或值進(jìn)行排序。

  1. 根據(jù)鍵排序:

    • 將HashMap的鍵集合轉(zhuǎn)換為L(zhǎng)ist,并使用Collections.sort()方法對(duì)List進(jìn)行排序。
    HashMap<String, Integer> map = new HashMap<>();
    // 添加鍵值對(duì)到map
    List<String> sortedKeys = new ArrayList<>(map.keySet());
    Collections.sort(sortedKeys);
    // 遍歷排序后的鍵集合并訪問(wèn)對(duì)應(yīng)的值
    for (String key : sortedKeys) {
        Integer value = map.get(key);
        System.out.println(key + ": " + value);
    }
    
  2. 根據(jù)值排序:

    • 將HashMap的鍵值對(duì)轉(zhuǎn)換為L(zhǎng)ist,并使用Collections.sort()方法對(duì)List進(jìn)行排序,根據(jù)值的大小進(jìn)行排序。
    HashMap<String, Integer> map = new HashMap<>();
    // 添加鍵值對(duì)到map
    List<Map.Entry<String, Integer>> sortedEntries = new ArrayList<>(map.entrySet());
    Collections.sort(sortedEntries, (entry1, entry2) -> entry1.getValue().compareTo(entry2.getValue()));
    // 遍歷排序后的鍵值對(duì)并訪問(wèn)鍵和值
    for (Map.Entry<String, Integer> entry : sortedEntries) {
        String key = entry.getKey();
        Integer value = entry.getValue();
        System.out.println(key + ": " + value);
    }
    

注意:以上排序方法只能對(duì)鍵或值是基本類(lèi)型的HashMap進(jìn)行排序。如果HashMap的鍵或值是自定義對(duì)象,需要自定義比較器(comparator)來(lái)實(shí)現(xiàn)排序。

0