16、TreeMap的使用
(1)基本概念
- 一个基于红黑树的NavigableMap实现
- 请注意,此实现不同步
- 构造方法
(2)TreeMap的使用
- 添加元素测试
//新家集合
TreeMap<Student,String> treeMap=new TreeMap<> ();
//新建对象
Student s1=new Student ("l",101);
Student s2=new Student ("y",102);
Student s3=new Student ("m",103);
treeMap.put (s1,"广州");
treeMap.put(s2,"北京");
treeMap.put (s3,"深圳");
System.out.println ("元素个数:"+treeMap.size ());
System.out.println (treeMap.toString ());
我们运行会发现报以下错误:
看了前面的一些文章应该对这个报错很了解了,也就是类型转换异常。我们需要做的就是让Student类实现Comparable接口
@Override
public int compareTo(Student o) {
int n1=this.name.compareTo (o.getName ());
int n2=this.id-o.getId ();
return n2==0?n1:n2;
}
- 删除测试
//删除操作
treeMap.remove (s3);
System.out.println ("删除之后元素个数:"+treeMap.size ());
- 遍历测试
//遍历元素
for(Student keyset:treeMap.keySet ()){
System.out.println (keyset+"------"+treeMap.get (keyset));
}
for(Map.Entry<Student,String> entryset:treeMap.entrySet ()){
System.out.println (entryset.getKey ()+":"+entryset.getValue ());
}