模块 java.base
 java.util

类 TreeSet<E>

类型参数:
E - 此集合维护的元素类型
所有已实现的接口:
Serializable , Cloneable , Iterable<E> , Collection<E> , NavigableSet<E> , Set<E> , SortedSet<E>

public class TreeSet<E> extends AbstractSet <E> implements NavigableSet <E>, Cloneable , Serializable
基于 TreeMap NavigableSet 实现。这些元素使用它们的 自然排序 排序,或者通过在集合创建时提供的 Comparator 排序,具体取决于使用的构造函数。

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

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

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

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

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

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

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

自从:
1.2
参见:
  • 构造方法总结

    构造方法
    构造方法
    描述
    构造一个新的空树集,根据其元素的自然顺序进行排序。
    TreeSet(Collection<? extends E> c)
    构造一个新的树集,包含指定集合中的元素,按照自然排序它的元素。
    TreeSet(Comparator<? super E> comparator)
    构造一个新的空树集,根据指定的比较器排序。
    构造一个包含相同元素并使用与指定排序集相同顺序的新树集。
  • 方法总结

    修饰符和类型
    方法
    描述
    boolean
    add(E e)
    如果指定的元素不存在,则将其添加到此集合中。
    boolean
    addAll(Collection<? extends E> c)
    将指定集合中的所有元素添加到此集合。
    E
    ceiling(E e)
    返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回 null
    void
    从此集合中删除所有元素。
    返回此 TreeSet 实例的浅表副本。
    Comparator<? super E>
    返回用于对该集合中的元素进行排序的比较器,如果该集合使用其元素的 自然排序,则返回 null
    boolean
    如果此集合包含指定元素,则返回 true
    按降序返回此集合中元素的迭代器。
    返回此集合中包含的元素的倒序视图。
    E
    返回此集合中当前的第一个(最低)元素。
    E
    floor(E e)
    返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回 null
    headSet(E toElement)
    返回此集合中元素严格小于 toElement 的部分的视图。
    headSet(E toElement, boolean inclusive)
    返回此集合的部分视图,其元素小于(或等于,如果 inclusive 为真) toElement
    E
    higher(E e)
    返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回 null
    boolean
    如果此集合不包含任何元素,则返回 true
    按升序返回此集合中元素的迭代器。
    E
    last()
    返回此集合中当前的最后一个(最高)元素。
    E
    lower(E e)
    返回此集合中严格小于给定元素的最大元素,如果没有这样的元素,则返回 null
    E
    检索并删除第一个(最低)元素,如果此集合为空,则返回 null
    E
    检索并删除最后一个(最高)元素,如果此集合为空,则返回 null
    boolean
    如果存在,则从此集合中移除指定元素。
    int
    size()
    返回此集合中的元素数(其基数)。
    在此集合中的元素上创建 late-bindingfail-fast Spliterator
    subSet(E fromElement, boolean fromInclusive, E toElement, boolean toInclusive)
    返回此集合的部分视图,其元素范围从 fromElementtoElement
    subSet(E fromElement, E toElement)
    返回此集合的部分视图,其元素范围从 fromElement(含)到 toElement(不含)。
    tailSet(E fromElement)
    返回此集合中元素大于或等于 fromElement 的部分的视图。
    tailSet(E fromElement, boolean inclusive)
    返回此集合的部分视图,其元素大于(或等于,如果 inclusive 为真) fromElement

    在类 java.util.AbstractSet 中声明的方法

    equals, hashCode, removeAll

    在类 java.util.AbstractCollection 中声明的方法

    containsAll, retainAll, toArray, toArray, toString

    在类 java.lang.Object 中声明的方法

    finalize, getClass, notify, notifyAll, wait, wait, wait

    在接口 java.util.Collection 中声明的方法

    parallelStream, removeIf, stream, toArray

    在接口 java.lang.Iterable 中声明的方法

    forEach

    在接口 java.util.Set 中声明的方法

    containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
  • 构造方法详细信息

    • TreeSet

      public TreeSet()
      构造一个新的空树集,根据其元素的自然顺序进行排序。插入集合中的所有元素都必须实现 Comparable 接口。此外,所有这些元素必须是相互比较e1.compareTo(e2) 不得为集合中的任何元素 e1e2 抛出 ClassCastException。如果用户试图将一个元素添加到违反此约束的集合中(例如,用户尝试将一个字符串元素添加到一个元素为整数的集合中),add 调用将抛出一个 ClassCastException
    • TreeSet

      public TreeSet(Comparator <? super E > comparator)
      构造一个新的空树集,根据指定的比较器排序。插入集合中的所有元素必须是相互比较通过指定的比较器:comparator.compare(e1, e2) 不得为集合中的任何元素 e1e2 抛出 ClassCastException。如果用户试图向集合中添加一个违反此约束的元素,add 调用将抛出一个 ClassCastException
      参数:
      comparator - 将用于订购此集合的比较器。如果是 null ,将使用元素的 自然排序
    • TreeSet

      public TreeSet(Collection <? extends E > c)
      构造一个新的树集,包含指定集合中的元素,按照自然排序它的元素。插入集合中的所有元素都必须实现 Comparable 接口。此外,所有这些元素必须是相互比较e1.compareTo(e2) 不得为集合中的任何元素 e1e2 抛出 ClassCastException
      参数:
      c - 其元素将构成新集合的集合
      抛出:
      ClassCastException - 如果 c 中的元素不是 Comparable ,或者不可相互比较
      NullPointerException - 如果指定的集合为空
    • TreeSet

      public TreeSet(SortedSet <E > s)
      构造一个包含相同元素并使用与指定排序集相同顺序的新树集。
      参数:
      s - 其元素将组成新集合的有序集合
      抛出:
      NullPointerException - 如果指定的排序集为空
  • 方法详情

    • iterator

      public Iterator <E > iterator()
      按升序返回此集合中元素的迭代器。
      指定者:
      iterator 在接口 Collection<E>
      指定者:
      iterator 在接口 Iterable<E>
      指定者:
      iterator 在接口 NavigableSet<E>
      指定者:
      iterator 在接口 Set<E>
      指定者:
      iterator 在类 AbstractCollection<E>
      返回:
      按升序迭代此 set 中的元素的迭代器
    • descendingIterator

      public Iterator <E > descendingIterator()
      按降序返回此集合中元素的迭代器。
      指定者:
      descendingIterator 在接口 NavigableSet<E>
      返回:
      按降序对该集合中的元素进行迭代
      自从:
      1.6
    • descendingSet

      public NavigableSet <E > descendingSet()
      从接口 NavigableSet 复制的描述
      返回此集合中包含的元素的倒序视图。降序集由该集支持,因此对该集的更改会反映在降序集中,反之亦然。如果在对任一集合进行迭代时修改了任一集合(通过迭代器自己的 remove 操作除外),则迭代的结果是未定义的。

      返回的集合的排序等同于 Collections.reverseOrder (comparator()) 。表达式 s.descendingSet().descendingSet() 返回 s 的视图,本质上等同于 s

      指定者:
      descendingSet 在接口 NavigableSet<E>
      返回:
      该集合的逆序视图
      自从:
      1.6
    • size

      public int size()
      返回此集合中的元素数(其基数)。
      指定者:
      size 在接口 Collection<E>
      指定者:
      size 在接口 Set<E>
      返回:
      该集合中元素的数量(其基数)
    • isEmpty

      public boolean isEmpty()
      如果此集合不包含任何元素,则返回 true
      指定者:
      isEmpty 在接口 Collection<E>
      指定者:
      isEmpty 在接口 Set<E>
      重写:
      isEmpty 在类 AbstractCollection<E>
      返回:
      true 如果这个集合不包含任何元素
    • contains

      public boolean contains(Object  o)
      如果此集合包含指定元素,则返回 true。更正式地说,返回 true 当且仅当此集合包含元素 e 使得 Objects.equals(o, e)
      指定者:
      contains 在接口 Collection<E>
      指定者:
      contains 在接口 Set<E>
      重写:
      contains 在类 AbstractCollection<E>
      参数:
      o - 要检查此集合中包含的对象
      返回:
      true 如果此集合包含指定元素
      抛出:
      ClassCastException - 如果无法将指定对象与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
    • add

      public boolean add(E  e)
      如果指定的元素不存在,则将其添加到此集合中。更正式地说,如果集合不包含满足 Objects.equals(e, e2) 的元素 e2,则将指定元素 e 添加到该集合。如果此集合已包含该元素,则调用保持集合不变并返回 false
      指定者:
      add 在接口 Collection<E>
      指定者:
      add 在接口 Set<E>
      重写:
      add 在类 AbstractCollection<E>
      参数:
      e - 要添加到此集合的元素
      返回:
      true 如果此集合尚未包含指定元素
      抛出:
      ClassCastException - 如果无法将指定对象与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
    • remove

      public boolean remove(Object  o)
      如果存在,则从此集合中移除指定元素。更正式地说,删除元素 e 这样 Objects.equals(o, e) 如果此集合包含这样的元素。如果此集合包含该元素,则返回 true(或者等效地,如果此集合因调用而更改)。 (一旦调用返回,此集合将不包含该元素。)
      指定者:
      remove 在接口 Collection<E>
      指定者:
      remove 在接口 Set<E>
      重写:
      remove 在类 AbstractCollection<E>
      参数:
      o - 要从此集合中删除的对象(如果存在)
      返回:
      true 如果这个集合包含指定的元素
      抛出:
      ClassCastException - 如果无法将指定对象与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
    • clear

      public void clear()
      从此集合中删除所有元素。此调用返回后该集合将为空。
      指定者:
      clear 在接口 Collection<E>
      指定者:
      clear 在接口 Set<E>
      重写:
      clear 在类 AbstractCollection<E>
    • addAll

      public boolean addAll(Collection <? extends E > c)
      将指定集合中的所有元素添加到此集合。
      指定者:
      addAll 在接口 Collection<E>
      指定者:
      addAll 在接口 Set<E>
      重写:
      addAll 在类 AbstractCollection<E>
      参数:
      c - 包含要添加到此集合的元素的集合
      返回:
      true 如果此集合因调用而更改
      抛出:
      ClassCastException - 如果提供的元素无法与集合中当前的元素进行比较
      NullPointerException - 如果指定集合为 null 或任何元素为 null 并且此集合使用自然排序,或者其比较器不允许 null 元素
      参见:
    • subSet

      public NavigableSet <E > subSet(E  fromElement, boolean fromInclusive, E  toElement, boolean toInclusive)
      从接口 NavigableSet 复制的描述
      返回此集合的部分视图,其元素范围从 fromElementtoElement 。如果 fromElementtoElement 相等,则返回的集合为空,除非 fromInclusivetoInclusive 都为真。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。

      返回的集合将在尝试插入其范围之外的元素时抛出 IllegalArgumentException

      指定者:
      subSet 在接口 NavigableSet<E>
      参数:
      fromElement - 返回集的低端点
      fromInclusive - true 如果低端点要包含在返回的视图中
      toElement - 返回集的高端点
      toInclusive - true 如果高端点要包含在返回的视图中
      返回:
      该集合的部分视图,其元素范围从 fromElement(含)到 toElement(不含)
      抛出:
      ClassCastException - 如果 fromElementtoElement 无法使用该集合的比较器相互比较(或者,如果该集合没有比较器,则使用自然排序)。如果无法将 fromElementtoElement 与当前集合中的元素进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromElementtoElement 为空且此集合使用自然顺序,或者其比较器不允许空元素
      IllegalArgumentException - 如果 fromElement 大于 toElement ;或者如果这个集合本身有一个限制范围,并且 fromElementtoElement 位于范围的边界之外。
      自从:
      1.6
    • headSet

      public NavigableSet <E > headSet(E  toElement, boolean inclusive)
      从接口 NavigableSet 复制的描述
      返回此集合的部分视图,其元素小于(或等于,如果 inclusive 为真) toElement 。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。

      返回的集合将在尝试插入其范围之外的元素时抛出 IllegalArgumentException

      指定者:
      headSet 在接口 NavigableSet<E>
      参数:
      toElement - 返回集的高端点
      inclusive - true 如果高端点要包含在返回的视图中
      返回:
      该集合的部分视图,其元素小于(或等于,如果inclusive为真)toElement
      抛出:
      ClassCastException - 如果 toElement 与该集合的比较器不兼容(或者,如果该集合没有比较器,如果 toElement 未实现 Comparable )。如果无法将 toElement 与集合中的当前元素进行比较,则实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 toElement 为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      IllegalArgumentException - 如果这个集合本身有一个限制范围,并且 toElement 位于范围的边界之外
      自从:
      1.6
    • tailSet

      public NavigableSet <E > tailSet(E  fromElement, boolean inclusive)
      从接口 NavigableSet 复制的描述
      返回此集合的部分视图,其元素大于(或等于,如果 inclusive 为真) fromElement 。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。

      返回的集合将在尝试插入其范围之外的元素时抛出 IllegalArgumentException

      指定者:
      tailSet 在接口 NavigableSet<E>
      参数:
      fromElement - 返回集的低端点
      inclusive - true 如果低端点要包含在返回的视图中
      返回:
      该集合的元素大于或等于 fromElement 的部分的视图
      抛出:
      ClassCastException - 如果 fromElement 与该集合的比较器不兼容(或者,如果该集合没有比较器,如果 fromElement 未实现 Comparable )。如果 fromElement 无法与集合中当前的元素进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromElement 为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      IllegalArgumentException - 如果这个集合本身有一个限制范围,并且 fromElement 位于范围的边界之外
      自从:
      1.6
    • subSet

      public SortedSet <E > subSet(E  fromElement, E  toElement)
      从接口 NavigableSet 复制的描述
      返回此集合的部分视图,其元素范围从 fromElement(含)到 toElement(不含)。 (如果 fromElementtoElement 相等,则返回的集合为空。)返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。

      返回的集合将在尝试插入其范围之外的元素时抛出 IllegalArgumentException

      相当于 subSet(fromElement, true, toElement, false)

      指定者:
      subSet 在接口 NavigableSet<E>
      指定者:
      subSet 在接口 SortedSet<E>
      参数:
      fromElement - 返回集的低端点(含)
      toElement - 返回集的高端点(不包括)
      返回:
      该集合的部分视图,其元素范围从 fromElement(含)到 toElement(不含)
      抛出:
      ClassCastException - 如果 fromElementtoElement 无法使用该集合的比较器相互比较(或者,如果该集合没有比较器,则使用自然排序)。如果无法将 fromElementtoElement 与当前集合中的元素进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromElementtoElement 为空且此集合使用自然顺序,或者其比较器不允许空元素
      IllegalArgumentException - 如果 fromElement 大于 toElement ;或者如果这个集合本身有一个限制范围,并且 fromElementtoElement 位于范围的边界之外
    • headSet

      public SortedSet <E > headSet(E  toElement)
      从接口 NavigableSet 复制的描述
      返回此集合中元素严格小于 toElement 的部分的视图。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。

      返回的集合将在尝试插入其范围之外的元素时抛出 IllegalArgumentException

      相当于 headSet(toElement, false)

      指定者:
      headSet 在接口 NavigableSet<E>
      指定者:
      headSet 在接口 SortedSet<E>
      参数:
      toElement - 返回集的高端点(不包括)
      返回:
      该集合中元素严格小于 toElement 的部分的视图
      抛出:
      ClassCastException - 如果 toElement 与该集合的比较器不兼容(或者,如果该集合没有比较器,如果 toElement 未实现 Comparable )。如果无法将 toElement 与集合中的当前元素进行比较,则实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 toElement 为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      IllegalArgumentException - 如果这个集合本身有一个限制范围,并且 toElement 位于范围的边界之外
    • tailSet

      public SortedSet <E > tailSet(E  fromElement)
      从接口 NavigableSet 复制的描述
      返回此集合中元素大于或等于 fromElement 的部分的视图。返回的集合受此集合的支持,因此返回集合中的更改会反映在此集合中,反之亦然。返回的集合支持该集合支持的所有可选集合操作。

      返回的集合将在尝试插入其范围之外的元素时抛出 IllegalArgumentException

      相当于 tailSet(fromElement, true)

      指定者:
      tailSet 在接口 NavigableSet<E>
      指定者:
      tailSet 在接口 SortedSet<E>
      参数:
      fromElement - 返回集的低端点(含)
      返回:
      该集合的元素大于或等于 fromElement 的部分的视图
      抛出:
      ClassCastException - 如果 fromElement 与该集合的比较器不兼容(或者,如果该集合没有比较器,如果 fromElement 未实现 Comparable )。如果 fromElement 无法与集合中当前的元素进行比较,实现可能会(但不是必须)抛出此异常。
      NullPointerException - 如果 fromElement 为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      IllegalArgumentException - 如果这个集合本身有一个限制范围,并且 fromElement 位于范围的边界之外
    • comparator

      public Comparator <? super E > comparator()
      从接口 SortedSet 复制的描述
      返回用于对该集合中的元素进行排序的比较器,如果该集合使用其元素的 自然排序,则返回 null
      指定者:
      comparator 在接口 SortedSet<E>
      返回:
      用于对该集合中的元素进行排序的比较器,或者 null 如果该集合使用其元素的自然排序
    • first

      public E  first()
      从接口 SortedSet 复制的描述
      返回此集合中当前的第一个(最低)元素。
      指定者:
      first 在接口 SortedSet<E>
      返回:
      此集合中当前的第一个(最低)元素
      抛出:
      NoSuchElementException - 如果这个集合是空的
    • last

      public E  last()
      从接口 SortedSet 复制的描述
      返回此集合中当前的最后一个(最高)元素。
      指定者:
      last 在接口 SortedSet<E>
      返回:
      该集合中当前的最后一个(最高)元素
      抛出:
      NoSuchElementException - 如果这个集合是空的
    • lower

      public E  lower(E  e)
      从接口 NavigableSet 复制的描述
      返回此集合中严格小于给定元素的最大元素,如果没有这样的元素,则返回 null
      指定者:
      lower 在接口 NavigableSet<E>
      参数:
      e - 要匹配的值
      返回:
      小于 e 的最大元素,或者 null 如果没有这样的元素
      抛出:
      ClassCastException - 如果无法将指定元素与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      自从:
      1.6
    • floor

      public E  floor(E  e)
      从接口 NavigableSet 复制的描述
      返回此集合中小于或等于给定元素的最大元素,如果没有这样的元素,则返回 null
      指定者:
      floor 在接口 NavigableSet<E>
      参数:
      e - 要匹配的值
      返回:
      小于或等于 e 的最大元素,如果没有这样的元素,则为 null
      抛出:
      ClassCastException - 如果无法将指定元素与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      自从:
      1.6
    • ceiling

      public E  ceiling(E  e)
      从接口 NavigableSet 复制的描述
      返回此集合中大于或等于给定元素的最小元素,如果没有这样的元素,则返回 null
      指定者:
      ceiling 在接口 NavigableSet<E>
      参数:
      e - 要匹配的值
      返回:
      大于或等于 e 的最小元素,如果没有这样的元素,则为 null
      抛出:
      ClassCastException - 如果无法将指定元素与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      自从:
      1.6
    • higher

      public E  higher(E  e)
      从接口 NavigableSet 复制的描述
      返回此集合中严格大于给定元素的最小元素,如果没有这样的元素,则返回 null
      指定者:
      higher 在接口 NavigableSet<E>
      参数:
      e - 要匹配的值
      返回:
      大于 e 的最小元素,如果没有这样的元素,则为 null
      抛出:
      ClassCastException - 如果无法将指定元素与当前集合中的元素进行比较
      NullPointerException - 如果指定元素为 null 且此集合使用自然顺序,或者其比较器不允许 null 元素
      自从:
      1.6
    • pollFirst

      public E  pollFirst()
      从接口 NavigableSet 复制的描述
      检索并删除第一个(最低)元素,如果此集合为空,则返回 null
      指定者:
      pollFirst 在接口 NavigableSet<E>
      返回:
      第一个元素,或 null 如果此集合为空
      自从:
      1.6
    • pollLast

      public E  pollLast()
      从接口 NavigableSet 复制的描述
      检索并删除最后一个(最高)元素,如果此集合为空,则返回 null
      指定者:
      pollLast 在接口 NavigableSet<E>
      返回:
      最后一个元素,或 null 如果此集合为空
      自从:
      1.6
    • clone

      public Object  clone()
      返回此 TreeSet 实例的浅表副本。 (元素本身不会被克隆。)
      重写:
      clone 在类 Object
      返回:
      这个集合的浅拷贝
      参见:
    • spliterator

      public Spliterator <E > spliterator()
      在此集合中的元素上创建 late-bindingfail-fast Spliterator

      Spliterator 报告 Spliterator.SIZED Spliterator.DISTINCT Spliterator.SORTED Spliterator.ORDERED 。覆盖实施应记录附加特征值的报告。

      如果树集的比较器(参见 comparator() )为 null ,则拆分器的比较器(参见 Spliterator.getComparator() )为 null 。否则,拆分器的比较器与树集的比较器相同或强加相同的总排序。

      指定者:
      spliterator 在接口 Collection<E>
      指定者:
      spliterator 在接口 Iterable<E>
      指定者:
      spliterator 在接口 Set<E>
      指定者:
      spliterator 在接口 SortedSet<E>
      返回:
      a Spliterator 覆盖此集合中的元素
      自从:
      1.8