JDK源码学习之TreeMap.java分析

本文详细分析了JDK中的TreeMap数据结构,指出其基于红黑树实现,保证了元素的排序性。文章讨论了Comparable和Comparator接口在TreeMap中的作用,并介绍了TreeMap的关键属性和操作,如put()、get()、remove()方法的工作原理,以及红黑树的特性。此外,还讲解了TreeMap在插入、删除和查找操作后的树结构修复过程。
摘要由CSDN通过智能技术生成
TreeMap源码分析——基础分析

  常见的数据结构有数组、链表、树。集合类中有基于数组的ArrayList,基于链表的LinkedList,还有链表和数组结合的HashMap。
  Treemap基于红黑树实现。查看“键”或“键值对”时,他们会被排序(次序 由Comparable或Comparator决定)。
  TreeMap的特点在于,所得到的结果是经过排序的。TreeMap是唯一的带有subMap()方法的Map,它可以返回一个子树。
 
  在介绍TreeMap前先介绍Comparable和Comparator接口。
  Comparable接口:
    public interface  Comparable<T>{
        public int compareTo(T o);
    }
    Comparable接口支持泛型,只有一个方法,该方法返回负数、零、正数分别表示当前对象“小于”、“等于”、“大于”传入对象o。
    Comparator接口:
    public interface Comparator<T>{
        int compare(T o1, T o2);
        boolean equals(Object obj);
    }
      compare(T o1, T o2)方法比较o1和o2两个对象,o1“大于”o2,返回正数,相等返回零,“小于”返回负数。
      equals(Object obj)返回true的唯一情况是obj也是一个比较器(Comparator)并且比较结果和此比较器的结果的大小次序是一致的。
      即comp1.equals(comp2)意味着sgn(comp1.compare(o1, *o2))==sgn(comp2.compare(o1,o2))。
      符号sgn(expression)表示数学上的sigmoid函数,该函数根据expression的值是负数、零或者正数,分别返回-1、0或1.
      
      小结一下,实现Comparable结构的类可以和其他对象进行比较,即实现Comparable可以进行比较的类。、
      而实现Comparator接口的类是比较器,用于比较两个对象的大小。
      
    TreeMap
        TreeMap类定义:
          public class TreeMap<K, V> extends AbstractMap<K, V> implements Naviga
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值