TreeSet总结

简介 

  • public class TreeSet<E>
    extends AbstractSet<E>
    implements NavigableSet<E>, Cloneable, Serializable
  • 一个NavigableSet实现基于一个TreeMap 。 的元件使用其有序natural ordering ,或由Comparator集合创建时提供,这取决于所使用的构造方法。

    此实现提供了基本的操作(保证的log(n)时间成本addremovecontains )。

  • 请注意,如果要正确实现Set接口,则由集合维护的排序(无论是否提供显式比较器)必须与equals一致 。 (有关与equals一致的精确定义,请参阅ComparableComparator )这是因为Set接口是根据equals操作定义的,但是TreeSet实例使用其compareTo (或compare )方法执行所有元素比较,因此从该集合的角度来看,通过这种方法被认为相等的元素是相等的。 一套的行为明确的,即使它的排序和equals不一致; 它只是没有遵守Set接口的一般合同。

  • 请注意,此实现不同步。 如果多个线程同时访问树集,并且至少有一个线程修改了该集,则必须在外部进行同步。 这通常通过在自然封装集合的某个对象上进行同步来实现。 如果不存在此类对象,则应使用Collections.synchronizedSortedSet方法“包装”该集合 。 这最好在创建时完成,以防止对集合的意外不同步访问:

      SortedSet s = Collections.synchronizedSortedSet(new TreeSet(...)); 
    
  • 此类的iterator方法返回的迭代器是快速失败的 :如果在创建迭代器之后的任何时间修改集合,除了通过迭代器自己的remove方法之外,迭代器将抛出ConcurrentModificationException 。 因此,在并发修改的情况下,迭代器快速而干净地失败,而不是在未来的未确定时间冒任意,非确定性行为的风险。

 

方法摘要

构造方法  
构造器描述
TreeSet()

构造一个新的空树集,根据其元素的自然顺序进行排序。

TreeSet​(Collection<? extends E> c)

构造一个新的树集,其中包含指定集合中的元素,并根据其元素的 自然顺序进行排序

TreeSet​(Comparator<? super E> comparator)

构造一个新的空树集,根据指定的比较器进行排序。

TreeSet​(SortedSet<E> s)

构造一个包含相同元素并使用与指定有序集相同排序的新树集。

所有方法  实例方法 具体的方法 
变量和类型方法描述
booleanadd​(E e)

如果指定的元素尚不存在,则将其添加到此集合中。

booleanaddAll​(Collection<? extends E> c)

将指定集合中的所有元素添加到此集合中。

Eceiling​(E e)

返回此set中大于或等于给定元素的 null元素,如果没有这样的元素,则 null

voidclear()

从该集中删除所有元素。

Objectclone()

返回此 TreeSet实例的浅表副本。

booleancontains​(Object o)

如果此set包含指定的元素,则返回 true

Iterator<E>descendingIterator()

以降序返回此集合中元素的迭代器。

NavigableSet<E>descendingSet()

返回此set中包含的元素的逆序视图。

Efirst()

返回此集合中当前的第一个(最低)元素。

Efloor​(E e)

返回此set中小于或等于给定元素的最大元素,如果没有这样的元素,则 null

SortedSet<E>headSet​(E toElement)

返回此set的部分视图,其元素严格小于 toElement

NavigableSet<E>headSet​(E toElement, boolean inclusive)

返回此set的部分视图,其元素小于(或等于,如果 inclusive为true) toElement

Ehigher​(E e)

返回此集合中的最小元素严格大于给定元素,如果没有这样的元素,则 null

booleanisEmpty()

如果此集合不包含任何元素,则返回 true

Iterator<E>iterator()

以升序返回此集合中元素的迭代器。

Elast()

返回此集合中当前的最后一个(最高)元素。

Elower​(E e)

返回此集合中的最大元素严格小于给定元素,如果没有这样的元素,则 null

EpollFirst()

检索并删除第一个(最低)元素,如果此组为空,则返回 null

EpollLast()

检索并删除最后一个(最高)元素,如果此集合为空,则返回 null

booleanremove​(Object o)

如果存在,则从该集合中移除指定的元素。

intsize()

返回此集合中的元素数(基数)。

Spliterator<E>spliterator()

在此集合中的元素上创建late-binding故障快速 Spliterator

NavigableSet<E>subSet​(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)

返回此set的部分视图,其元素范围为 fromElementtoElement

SortedSet<E>subSet​(E fromElement, E toElement)

返回此set的部分视图,其元素范围从 fromElement (含)到 toElement (独占)。

SortedSet<E>tailSet​(E fromElement)

返回此set的部分视图,其元素大于或等于 fromElement

NavigableSet<E>tailSet​(E fromElement, boolean inclusive)

返回此set的部分视图,其元素大于(或等于,如果 inclusive为true) fromElement

 自定义数据类型的排序(实现comparable接口)

 

与集合中某个对象年龄相同的对象无法存进去

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hnu哈哈

请接受直女的么么哒????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值