TreeMap--一個排序了的映射

咱們在一般寫一個Map的時候,必定會用到HashMap,並且只要有相關的Map數據結構的需求,就會使用HashMap,但其實還有一個容器TreeMap,若是使用好的話會有很好的效果。java

  1. TreeMap是什麼 TreeMap是一個特殊的Map,它的全部元素都是根據key值進行排序的。數據結構

  2. TreeMap的要求 TreeMap由於是根據key值進行排序的,因此它的一個很是重要的要求是key的類必定是繼承了Comparable接口的。若是咱們運行以下的代碼:code

public class Test {
    public static void main(String[] args) {
        Map<Student, Integer > map = new TreeMap<>();
        map.put(new Student(), 1);
        System.out.println(map.size());
    }

    @Data
    static class Student {
        String name;
    }
}

咱們會有以下的報錯:orm

Exception in thread "main" java.lang.ClassCastException: com.makun.performance.Test$Student cannot be cast to java.lang.Comparable
	at java.util.TreeMap.compare(TreeMap.java:1294)
	at java.util.TreeMap.put(TreeMap.java:538)
	at com.makun.performance.Test.main(Test.java:16)
  1. TreeMap的內部結構是什麼樣的 TreeMap的實現從根本上講是紅黑樹,紅黑樹做爲一種優秀的數據結構,被普遍應用到了jdk的源碼編寫當中,至於紅黑樹的結構、性質與轉換規則,咱們會在之後的博客裏介紹
相關文章
相關標籤/搜索