• TreeMap实现类和SortMap接口


    注意:Map与Set集合的关系非常密切。java源码就是先实现了HashMap,TreeMap,再包装了一个value都为null的Map集合实现Set集合类。

    因此:TreeSet可以和TreeMap对比来看

     TreeSet存储key-value对时,根据key对节点进行排序。;类似得,也有两种方法进行排序。

    简单说:

    自然排序:TreeMap所有的key必须实现Comparable接口。而且所有的Key必须是同一个类的对象。

    定制排序:创建TreeMap时,传入一个Comparator对象,这个对象负责对TreeMap中的所有的Key进行排序。(例子可参见TreeSet两种排序)

    类似于TreeSet判断两个元素相等的条件,TreeMap判断两个key相等的条件是CompareTo()方法返回0.

    小注意的点:如果让自定义的类作为TreeMap的Key,则重写该类的equals()方法和CompareTo方法应该保持一致的返回结果。如果结果不一致则TreeMap和Map的规则就会冲突。(如果Map的key相等,则equals为true)

    下面是TreeMap的一些方法,根据key顺序访问key-value对的方法。

    Object firstKey()返回该Map最小的key值,如果为空或不存在则返回NULL

    Object lastKey()返回该Map最大的key值,如果为空或不存在则返回NULL

     Map.Entry firstEntry() 返回该Map最小的KEY对应的key-value对方法

     Map.Entry lastEntry() 返回该Map最大的KEY对应的key-value对方法

     Map.Entry higherEntry(Object key) 返回该Map大于指定的的KEY最小key对应的key-value对方法

     Map.Entry lowerEntry(Object key) 返回该Map小于指定的的KEY最大key对应的key-value对方法

    Object lowerKey(Object key) 返回该Map小于指定的的KEY最大key值

    Object higherKey(Object key) 返回该Map大于指定的的KEY最小key值

    NavigableMap subMap(Object fromKey,boolean fromInclusive,Object toKey,boolean toInclusive) 返回一个子Map,范围从fromKey(是否包含取决于第二个)到toKey(是否包含取决于第四个)

    SortedMap subMap(Object fromKey,Object toKey) 同上,但是前包括,后不包括

    SortedMap tailMap(Object fromKey) 大于指定key的子Map,包括指定Key

    NavigableMap tailMap(Object fromKey,boolean fromInclusive)大于指定key的子Map,包括不包括取决于后者

    SortedMap headMap(Object toKey) 小于指定key的子Map,包括指定Key

    NavigableMap headMap(Object toKey,boolean toInclusive)小于指定key的子Map,包括不包括取决于后者



    看晕了吗?总结一下就是key-value都是有序的,所以上面方法就是访问第一个前一个后一个,最后一个key-vaue对,并提供了几个截取子TreeMap方法。
     
  • 相关阅读:
    JavaScript笔试必备语句
    JQuery获取元素的方法总结
    JavaScript易错知识点整理
    程序员都讨厌开会?
    JS操作select下拉框动态变动(创建/删除/获取)
    用 jQuery.ajaxSetup 实现对请求和响应数据的过滤
    HTML5 学习笔记(一)——HTML5概要与新增标签
    json返回数据库的时间格式为/Date(1477294037000)/,怎样在前台进行格式化转换
    Hive 12、Hive优化
    Hive 11、Hive嵌入Python
  • 原文地址:https://www.cnblogs.com/yizhizhangBlog/p/9274955.html
Copyright © 2020-2023  润新知