首頁  >  文章  >  Java  >  java可以對map的key排序嗎

java可以對map的key排序嗎

(*-*)浩
(*-*)浩原創
2019-11-19 11:52:552129瀏覽

java可以對map的key排序嗎

Map是鍵值對的集合接口,它的實作類別主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等。 (建議學習:java課程

TreeMap:基於紅黑樹(Red-Black tree)的NavigableMap 實現,該映射根據其鍵的自然順序進行排序,或者根據創建映射時提供的Comparator 進行排序,取決於使用的​​建構方法。

Map.Entry傳回Collections視圖。

key排序

TreeMap預設是升序的,如果我們需要改變排序方式,則需要使用比較器:Comparator。 Comparator可以對集合物件或陣列進行排序的比較器接口,實作該介面的public compare(T o1,To2)方法即可實現排序,如下:

import java.util.Comparator;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class TreeMapTest {
    public static void main(String[] args) {
        Map<String, String> map = new TreeMap<String, String>(
                new Comparator<String>() {
                    public int compare(String obj1, String obj2) {
                        // 降序排序
                        return obj2.compareTo(obj1);
                    }
                });
        map.put("b", "ccccc");
        map.put("d", "aaaaa");
        map.put("c", "bbbbb");
        map.put("a", "ddddd");
        
        Set<String> keySet = map.keySet();
        Iterator<String> iter = keySet.iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            System.out.println(key + ":" + map.get(key));
        }
    }
}

運行結果如下:

d:aaaaa
c:bbbbb
b:ccccc
a:ddddd

以上是java可以對map的key排序嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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