91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

如何實現自定義排序的HashMap

小樊
89
2024-09-06 11:04:38
欄目: 編程語言

在Java中,HashMap是一個無序的集合,它不保證元素的順序

  1. 使用LinkedHashMap

LinkedHashMap繼承自HashMap,它維護了一個雙向鏈表來記錄插入順序。但是,默認情況下,它按照插入順序排序,而不是按照自定義順序。為了實現自定義排序,我們需要創建一個自定義的比較器,并將其傳遞給LinkedHashMap的構造函數。以下是一個示例:

import java.util.*;

public class CustomSortedHashMap {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 3);
        map.put("banana", 2);
        map.put("orange", 1);

        Comparator<String> comparator = (key1, key2) -> {
            int value1 = map.get(key1);
            int value2 = map.get(key2);
            return Integer.compare(value2, value1); // 降序排序
        };

        Map<String, Integer> sortedMap = new LinkedHashMap<>();
        List<String> keys = new ArrayList<>(map.keySet());
        Collections.sort(keys, comparator);

        for (String key : keys) {
            sortedMap.put(key, map.get(key));
        }

        System.out.println("Sorted Map: " + sortedMap);
    }
}
  1. 使用TreeMap

TreeMap是一個有序的集合,它會根據鍵的自然順序或者自定義的比較器進行排序。為了實現自定義排序,我們可以創建一個自定義的比較器,并將其傳遞給TreeMap的構造函數。以下是一個示例:

import java.util.*;

public class CustomSortedHashMap {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("apple", 3);
        map.put("banana", 2);
        map.put("orange", 1);

        Comparator<String> comparator = (key1, key2) -> {
            int value1 = map.get(key1);
            int value2 = map.get(key2);
            return Integer.compare(value2, value1); // 降序排序
        };

        Map<String, Integer> sortedMap = new TreeMap<>(comparator);
        sortedMap.putAll(map);

        System.out.println("Sorted Map: " + sortedMap);
    }
}

這兩種方法都可以實現自定義排序的HashMap。你可以根據你的需求選擇合適的方法。

0
万源市| 肥东县| 手游| 浦江县| 五大连池市| 英山县| 交城县| 东乡族自治县| 丽江市| 贵溪市| 无极县| 潮安县| 盐城市| 楚雄市| 定兴县| 江都市| 孝感市| 合江县| 论坛| 若羌县| 桦川县| 鄂伦春自治旗| 颍上县| 淮滨县| 敦煌市| 铜川市| 来凤县| 邛崃市| 龙口市| 铁力市| 千阳县| 晋江市| 鄂尔多斯市| 鹤峰县| 连南| 罗山县| 廊坊市| 黑水县| 临颍县| 顺平县| 新乡市|