16、TreeMap的使用

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 ());
        }

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值