Map按key排序問題

https://www.jb51.net/article/99726.htm
https://blog.csdn.net/xHibiki/article/details/82938480
https://www.cnblogs.com/Fan-Gao/p/9645308.html
https://www.cnblogs.com/liujinhong/p/6113183.html

key是Integer類型的hashMap情況

//對於連續的數字,會自動排好序
      Map<Integer, String> m = new HashMap<>();
        m.put(10, "d1");
        m.put(2, "d0");
        m.put(3,"asdf");
        m.put(8,"adfa");
        m.put(12,"fad");
        m.put(0,"adf");
        m.put(7,"daf");
        m.put(13,"daf");
        m.put(4,"adfa");
        m.put(14,"fadf");
        m.put(1,"adf");
        m.put(9,"adfad");
        m.put(5, "ddd");
        m.put(16,"fadf");
        m.put(6,"afd");
        m.put(15,"adfa");
        m.put(11,"daf");
        for (Map.Entry<Integer, String> o : m.entrySet())
        {
            System.out.println(o.getKey() + ", " + o.getValue());
        }

在這裏插入圖片描述

//非連續性數字,就不一定排好序了
     Map<Integer, String> m = new HashMap<>();
     //   m.put(10, "d1");
        m.put(2, "d0");
     //   m.put(3,"asdf");
        m.put(8,"adfa");
        m.put(12,"fad");
        m.put(0,"adf");
        m.put(7,"daf");
     //   m.put(13,"daf");
        m.put(4,"adfa");
        m.put(14,"fadf");
     //   m.put(1,"adf");
        m.put(9,"adfad");
        m.put(5, "ddd");
        m.put(16,"fadf");
      //  m.put(6,"afd");
        m.put(15,"adfa");
        m.put(11,"daf");
        for (Map.Entry<Integer, String> o : m.entrySet())
        {
            System.out.println(o.getKey() + ", " + o.getValue());
        }

在這裏插入圖片描述
key是String類型的hashMap情況

        Map<String, String> m = new HashMap<>();
       // m.put("10", "d1");
        m.put("2", "d0");
     //   m.put("3","asdf");
        m.put("8","adfa");
        m.put("12","fad");
        m.put("0","adf");
        m.put("7","daf");
     //   m.put("13","daf");
        m.put("4","adfa");
        m.put("14","fadf");
     //   m.put("1","adf");
        m.put("9","adfad");
        m.put("5", "ddd");
        m.put("16","fadf");
      //  m.put("6","afd");
        m.put("15","adfa");
//        m.put("11","daf");
        for (Map.Entry<String, String> o : m.entrySet())
        {
            System.out.println(o.getKey() + ", " + o.getValue());
        }

在這裏插入圖片描述

     Map<String, String> m = new HashMap<>();
        m.put("10", "d1");
        m.put("2", "d0");
        m.put("3","asdf");
        m.put("8","adfa");
        m.put("12","fad");
        m.put("0","adf");
        m.put("7","daf");
        m.put("13","daf");
        m.put("4","adfa");
        m.put("14","fadf");
        m.put("1","adf");
        m.put("9","adfad");
        m.put("5", "ddd");
        m.put("16","fadf");
        m.put("6","afd");
        m.put("15","adfa");
        m.put("11","daf");
        for (Map.Entry<String, String> o : m.entrySet())
        {
            System.out.println(o.getKey() + ", " + o.getValue());
        }

在這裏插入圖片描述
key是Integer類型的TreeMap情況:

  Map<Integer, String> m = new TreeMap<>();
             //   m.put(10, "d1");
        m.put(2, "d0");
     //   m.put(3,"asdf");
        m.put(8,"adfa");
        m.put(12,"fad");
        m.put(0,"adf");
        m.put(7,"daf");
     //   m.put(13,"daf");
        m.put(4,"adfa");
        m.put(14,"fadf");
     //   m.put(1,"adf");
        m.put(9,"adfad");
        m.put(5, "ddd");
        m.put(16,"fadf");
      //  m.put(6,"afd");
        m.put(15,"adfa");
        m.put(11,"daf");
        for (Map.Entry<Integer, String> o : m.entrySet())
        {
            System.out.println(o.getKey() + ", " + o.getValue());
        }

在這裏插入圖片描述
連續的key也會是排好序的

key是String類型的TreeMap情況

//根據字符挨個比較
 Map<String, String> m = new TreeMap<>();
        m.put("30", "d1");
        m.put("2", "d0");
        m.put("5", "ddd");
        m.put("111","hh");
        m.put("121","adf");
        m.put("654","hh2");
        for (Map.Entry<String, String> o : m.entrySet())
        {
            System.out.println(o.getKey() + ", " + o.getValue());
        }

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章