關於map 的排序

map:無序排序

treemap:默認是升序(以key做爲標準)get

linkedhashmap:默認是插入數據時的順序hash

若是須要自定義,可作如下操做:io

對於map的排序:hashmap

Map<String, String> map = new TreeMap<String, String>(
                new Comparator<String>() {
                    public int compare(String obj1, String obj2) {
                        // 降序排序(調整o1和o2比較的順序調節升序和降序)
                        return obj2.compareTo(obj1);
                    }
                });

以上是對key的排序處理.List

//這裏將map.entrySet()轉換成list
        List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(map.entrySet());
        //而後經過比較器來實現排序
        Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
            //升序排序
            public int compare(Entry<String, String> o1,
                    Entry<String, String> o2) {
                return o1.getValue().compareTo(o2.getValue());
            }
            
        });

以上是對value的排序處理,若是修改 o1.getKey().compareTo(o2.getKey());便可轉成key的排序處理.map

以上兩種方法都是實現重寫conpare方法實現自定義排序處理.方法

相關文章
相關標籤/搜索