TreeMap的put()方法抛ClassCastException异常

今天写代码过程中用到了TreeMap, 之前了解到要使用TreeMap,必须明确指定它所使用的排序方法,即在TreeMap的构造方法中指定所使用的排序方式,但是我查看了TreeMap的api,看到有无参的构造方法,心想既然TreeMap有无参的构造方法,那么它应该有默认的排序方法,所以在使用TreeMap的时候就没有指定排序方法,但是在使用过程中,当我第一次调用put方法时,程序没有错误,当我第二次put时,程序抛出了ClassCastException异常。


从提示来看,是TreeMap的put()方法出了问题,提示的内容是我插入的key(AddFun类的实例)不能转换为Comparable. 不多说,查看TreeMap的源代码找答案。TreeMap无参构造方法

该构造方法指出,所有插入到TreeMap的key都必须实现Comparable接口,在看看put方法


当要插入的key不能与treemap中存在的key进行比较的时候会抛出ClassCastException异常。所以第一次插入时,因为treemap为空,不需要比较;当第二次插入到treemap中,treemap为了保证数据有序必须要比较两个key,但是它不知道如何比较,所以抛出ClassCastException异常。










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值