HashMap和TreeMap的区别

  • HashMap和TreeMap都是非线程安全
  • HashMap通过hashcode()对元素进行快速查找,元素没有顺序
    TreeMap中的元素都是有序
  • HashMap继承了AbstractMap类,覆盖了hashcode()和equals()方法,以确保两个相等的映射返回相同的哈希值
    TreeMap不仅继承了AbstractMap类,还实现了SortedMap接口,每个添加进TreeMap的元素都会实现Comparator接口,以此实现对存入元素的排序
  • HashMap是基于哈希表实现的,我们可以对初始容量和负载因子进行调优处理,以优化HashMap空间的使用。默认初始容量为16,负载因子为0.75,扩容时旧容量乘2
    TreeMap是基于红黑树实现的,没有调优选项,红黑树总处于平衡状态
  • HashMap允许null作为key和value,key不可以重复,value允许重复
    TreeMap不允许null,key不可以重复,value允许重复
  • HashMap适用于在Map中插入、删除和定位元素。
    TreeMap适用于按自然顺序或自定义顺序遍历键(key)
  • HashMap通常比TreeMap快一些,在没有排序需求时尽量使用HashMap,否则使用TreeMap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值