咱們在一般寫一個Map的時候,必定會用到HashMap,並且只要有相關的Map數據結構的需求,就會使用HashMap,但其實還有一個容器TreeMap,若是使用好的話會有很好的效果。java
TreeMap是什麼 TreeMap是一個特殊的Map,它的全部元素都是根據key值進行排序的。數據結構
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)