兩行代碼搞定根據參數名稱的ASCII碼錶順序升序排序

根據參數名稱的ASCII碼錶順序升序排序,那麼首先要弄明白什麼是ASCII碼錶

ASCII ((American Standard Code for Information Interchange): 美國信息交換標準代碼)

先來看一下ASCII碼錶,簡單列舉其中幾個值

ASCII值 控制字符
0 NUT
1 SOH
48 0
49 1
97 a
98 b

也就是0在ASCII碼錶中代表的值是48,a在ASCII碼錶中代表的值是97,此爲信息交換,因爲計算機存儲數據和運算都要使用二進制表示(計算機用高電平和低電平分別表示1和0),像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示,而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那麼大家就必須使用相同的編碼規則,於是美國有關的標準化組織就出臺了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示

所以說了這麼多計算機就是按ASCII規範來存儲數據的,所有的字符都有自己代表的數字,所以排序自然也是按照這個順序來排的

下面直接上代碼

public class Demo1 {


    public static void main(String[] args) {
        Map<String,Object> map = new HashMap<>();
        map.put("bbb", 1);
        map.put("aaa", "hello");
        map.put("abc", "abc");
        map.put("u1", "u1");
        System.out.println("排序前:" + map);
        map = SortUtil.sortByKey(map);
        System.out.println("排序後:" + map);
    }


}

class SortUtil{
    public static Map<String, Object> sortByKey(Map<String, Object> map){
        //創建一個帶有比較器的TreeMap
        Map<String, Object> treeMap = new TreeMap<>(String::compareTo);
        //將你的map傳入treeMap
        treeMap.putAll(map);
        return treeMap;
    }
}

只需要兩行代碼就可以搞定,來看下輸出結果

排序前:{aaa=hello, bbb=1, abc=abc, u1=u1}
排序後:{aaa=hello, abc=abc, bbb=1, u1=u1}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章