当前位置:网站首页 > 技术博客 > 正文

treeset用法



基于 的 实现。这些元素使用它们的 自然排序 排序,或者通过在集合创建时提供的 排序,具体取决于使用的构造函数。

此实现为基本操作(、 和 )提供有保证的 log(n) 时间成本。

请注意,集合维护的顺序(无论是否提供显式比较器)必须是一致如果是正确实现接口。 (有关的精确定义,请参阅 或 一致.) 之所以如此,是因为 接口是根据 操作定义的,但是 实例使用其 (或 )方法执行所有元素比较,因此从角度来看,此方法认为两个元素相等的集合,相等。集合的行为定义明确,即使其顺序与 equals 不一致;它只是不遵守 接口的一般合同。

Note that this implementation is not synchronized. 如果多个线程同时访问一个树集,并且至少有一个线程修改了该集,则必须外部同步。这通常是通过同步一些自然封装集合的对象来实现的。如果不存在这样的对象,则应使用 方法“包装”该集合。这最好在创建时完成,以防止意外的不同步访问集合:

 SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...));

此类的 方法返回的迭代器是快速失败:如果在创建迭代器后的任何时间以任何方式修改集合,除了通过迭代器自己的 方法,迭代器将抛出一个 。因此,面对并发修改,迭代器会快速干净地失败,而不是冒着在未来不确定的时间出现任意的、不确定的行为的风险。

请注意,无法保证迭代器的快速失败行为,因为一般来说,在存在非同步并发修改的情况下不可能做出任何硬性保证。快速失败迭代器会尽最大努力抛出 。因此,编写依赖于此异常的正确性的程序是错误的:迭代器的快速失败行为应该只用于检测错误。

此类是 Java 集合框架 的成员。

版权声明


相关文章:

  • linux sar指标2025-04-23 15:30:04
  • java系统源码2025-04-23 15:30:04
  • 栅格dem2025-04-23 15:30:04
  • linux中eof什么意思2025-04-23 15:30:04
  • 微积分f122025-04-23 15:30:04
  • ce认证检测包括哪些项目2025-04-23 15:30:04
  • 02142数据结构导论真题解析2025-04-23 15:30:04
  • python sl4a教程2025-04-23 15:30:04
  • ce认证如何办理2025-04-23 15:30:04
  • oc与swift的区别2025-04-23 15:30:04