java容器 接口SortedMap源码分析

目录

简介

comparator

subMap,headMap,tailMap

firstKey,lastKey

keySet,values,entrySet


简介

/**
 * 进一步提供其键的总排序的映射。
 * 映射是根据其键的自然顺序排序的,或者由一个比较器(通常在已排序的映射创建时提供)来排序的。
 * 这种顺序反映在遍历已排序映射的集合视图(由entrySet、keySet和values方法返回)时。
 * 还提供了几个额外的操作来利用排序。(此接口是SortedSet的映射模拟。)
 *
 * <p>插入到排序映射中的所有键必须实现Comparable接口(或者被指定的比较器接受)。
 * 而且,所有这些键必须是相互可比的:  k1. compareto (k2)(或comparator.compare(k1, k2))
 * 不能让任何键k1和k2抛出ClassCastException。
 * 试图违反此限制将导致违规的方法或构造函数调用抛出ClassCastException。
 *
 * <p>注意,如果要正确地实现map接口,排序后的map所维护的顺序(不管是否提供了显式的比较器)必须与equals一致。
 * (参见Comparable接口或Comparator接口,以获得与equals一致的精确定义。)
 * 这是因为Map接口是根据equals操作定义的,但是一个排序后的Map使用它的compareTo(或compare)方法执行所有的键比较,
 * 所以从排序后的Map的角度来看,这个方法认为相等的两个键是相等的。
 * 树映射的行为是定义良好的,即使它的顺序与equals不一致;它只是没有遵守map接口的通用契约。
 *
 * <p>所有通用的排序映射实现类都应该提供四个“标准”构造函数。
 * 虽然接口无法指定所需的构造函数,但不可能强制执行此建议。预期的“标准”构造函数为所有排序的映射实现:
 * <ol>
 *   <li>一个void(无参数)构造函数,它创建一个按键的自然顺序排序的空排序映射。</li>
 *   <li>一个只有一个比较器类型参数的构造函数,它创建一个根据指定的比较器排序的空的排序映射。</li>
 *   <li>具有Map类型的单个参数的构造函数,该构造函数创建一个具有与其参数相同的键-值映射的新映射,并根据键的自然顺序进行排序。</li>
 *   <li>带有SortedMap类型的单个参数的构造函数,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值