什么是TreeMap
treemap是java.util.Map的一个实现类,TreeMap实现SortedMap接口,可能把它保留的记录依据键排序,默认是按键值的升序排序,也能够指定排序的比拟器,当用Iterator遍历TreeMap时,失去的记录是排过序的。如果应用排序的映射,倡议应用TreeMap。在应用TreeMap时,key必须实现Comparable接口或者在结构TreeMap传入自定义的Comparator,否则会在运行时抛出java.lang.ClassCastException类型的异样。
对于java.lang.ClassCastException异样
通常遇到这个异样的起因是强制类型转换时报错,在强制类型转换时,须要留神,父类援用指向的对象的类型是子类的时候才能够进行强制类型转换,如果父类援用指向的对象的类型不是子类的时候将产生java.lang.ClassCastException异样。
Animal a1 = new Dog(); // 1Animal a2 = new Cat(); // 2 Dog d1 = (Dog)a1; //3Dog d2 = (Dog)a2; //4
在这个demo中,第三行能够进行强转,然而第四行会抛出java.lang.ClassCastException异样,因为a2是animal,然而具体实现类型是cat,不能间接强转为dog类型。
遇到这样的异样的时候如何解决呢?如果你晓得要拜访的的对象的具体类型,间接转换成该类型即可。如果不能确定类型能够通过上面的两种形式进行解决(假如对象为o):
1、通过o.getClass().getName()失去具体的类型,能够通过输入语句输入这个类型,而后依据类型进行进行具体的解决。
2、通过if(o instanceof 类型)的语句来判断o的类型是什么。