溫馨提示×

hashmap遍歷是否可以自定義排序

小樊
91
2024-07-11 18:53:30
欄目: 編程語言

在Java中,HashMap是無序的,因此無法對HashMap的遍歷進行自定義排序。如果想要按照特定的順序進行遍歷,可以考慮將HashMap中的鍵值對放入一個List中,然后對List進行排序,最后再遍歷排序后的List。以下是一個示例代碼:

import java.util.*;

public class SortHashMap {

    public static void main(String[] args) {
        Map<String, Integer> hashMap = new HashMap<>();
        hashMap.put("Alice", 25);
        hashMap.put("Bob", 30);
        hashMap.put("Charlie", 20);
        hashMap.put("David", 35);

        List<Map.Entry<String, Integer>> list = new ArrayList<>(hashMap.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
            @Override
            public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                // 按照鍵的字母順序排序
                return o1.getKey().compareTo(o2.getKey());
            }
        });

        for (Map.Entry<String, Integer> entry : list) {
            System.out.println(entry.getKey() + ": " + entry.getValue());
        }
    }
}

在上面的代碼中,我們先將HashMap中的鍵值對放入一個List中,然后通過Collections.sort()方法對List進行排序,最后再遍歷排序后的List。在Comparator的compare方法中,我們可以自定義排序的邏輯。

0