Most visited

Recently visited

Added in API level 1

SortedSet

public interface SortedSet
implements Set<E>

java.util.SortedSet<E>
Known Indirect Subclasses


一个Set ,进一步提供了其元素的总排序 元素使用natural orderingComparator进行排序,通常在有序集创建时提供。 集合的迭代器将按升序元素顺序遍历集合。 提供了几个额外的操作来利用排序。 (该接口是SortedMap的设置模拟。)

插入到有序集合中的所有元素必须实现Comparable接口(或被指定的比较器接受)。 此外,所有这些元素必须相互可比e1.compareTo(e2) (或comparator.compare(e1, e2) )不得为排序集中的任何元素e1e2抛出ClassCastException 尝试违反此限制会导致违规方法或构造函数调用抛出ClassCastException

请注意,如果有序集合要正确实现Set接口,则排序集(无论是否提供显式比较器)维护的排序必须与equals保持一致 (请参见Comparable接口或Comparator接口以获得与equals一致的精确定义。)这是因为Set接口是根据equals操作定义的,但排序集使用其compareTo (或compare )方法执行所有元素比较,所以从排序集的角度来看,被这种方法视为相等的两个元素是相等的。 即使排序与等号不一致,排序集的行为也是很好定义的; 它只是不服从Set接口的总体合同。

所有通用的有序集合实现类都应提供四个“标准”构造函数:1)void(无参数)构造函数,它根据元素的自然顺序创建一个空的有序集合。 2)一个构造函数,它有一个类型为Comparator的参数,它根据指定的比较器创建一个空的排序集。 3)一个构造函数,它带有一个类型为Collection的参数,它创建一个新的有序元素集,其元素与它的参数相同,并根据元素的自然顺序进行排序。 4)一个构造函数,其类型为SortedSet ,它创建一个新的有序集合,它具有与输入有序集合相同的元素和相同的排序顺序。 无法强制执行此建议,因为接口不能包含构造函数。

注意:几种方法返回限制范围的子集。 这样的范围是半开放的 ,即它们包括它们的低端点,但不包括它们的高端点(如果适用)。 如果您需要一个封闭范围 (其中包括两个端点),并且元素类型允许计算给定值的后继,则仅请求从lowEndpointsuccessor(highEndpoint)的子范围。 例如,假设s是一组有序的字符串。 以下习语获得一个视图,其中包含shigh (包括high)中的所有字符串:

   SortedSet<String> sub = s.subSet(low, high+"\0");
A similar technique can be used to generate an open range (which contains neither endpoint). The following idiom obtains a view containing all of the Strings in s from low to high, exclusive:
   SortedSet<String> sub = s.subSet(low+"\0", high);

该界面是 Java Collections Framework的成员。

也可以看看:

Summary

Public methods

abstract Comparator<? super E> comparator()

返回用于如果此set使用命令在该组中的元素,或 null比较 natural ordering的元素。

abstract E first()

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

abstract SortedSet<E> headSet(E toElement)

返回此组中元素严格小于 toElement的部分的视图。

abstract E last()

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

default Spliterator<E> spliterator()

在此有序集合中的元素上创建一个 Spliterator

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

返回此集合中元素范围从 fromElement (含)到 toElement (独占)的部分的视图。

abstract SortedSet<E> tailSet(E fromElement)

返回该元素大于或等于 fromElement的部分视图。

Inherited methods

From interface java.util.Set
From interface java.util.Collection
From interface java.lang.Iterable

Public methods

comparator

Added in API level 1
Comparator<? super E> comparator ()

返回用于对此集合中的元素进行排序的比较器 ;如果此集合使用其元素的 natural ordering ,则 返回null

Returns
Comparator<? super E> the comparator used to order the elements in this set, or null if this set uses the natural ordering of its elements

first

Added in API level 1
E first ()

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

Returns
E the first (lowest) element currently in this set
Throws
NoSuchElementException if this set is empty

headSet

Added in API level 1
SortedSet<E> headSet (E toElement)

返回该组中元素严格小于toElement的部分的视图。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

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

Parameters
toElement E: high endpoint (exclusive) of the returned set
Returns
SortedSet<E> a view of the portion of this set whose elements are strictly less than toElement
Throws
ClassCastException if toElement is not compatible with this set's comparator (or, if the set has no comparator, if toElement does not implement Comparable). Implementations may, but are not required to, throw this exception if toElement cannot be compared to elements currently in the set.
NullPointerException if toElement is null and this set does not permit null elements
IllegalArgumentException if this set itself has a restricted range, and toElement lies outside the bounds of the range

last

Added in API level 1
E last ()

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

Returns
E the last (highest) element currently in this set
Throws
NoSuchElementException if this set is empty

spliterator

Spliterator<E> spliterator ()

在此有序集合中的元素上创建一个 Spliterator

Spliterator报告DISTINCTSORTEDORDERED 实施应记录附加特征值的报告。

该spliterator的比较(见getComparator() )必须是null如果有序set的比较(见comparator() )是null 否则,分割器的比较器必须与分类后的比较器相同或总是相同。

实现要求:
  • The default implementation creates a late-binding spliterator from the sorted set's Iterator. The spliterator inherits the fail-fast properties of the set's iterator. The spliterator's comparator is the same as the sorted set's comparator.

    创建的 Spliterator另外报告 SIZED

Implementation Note:
  • The created Spliterator additionally reports SUBSIZED.
Returns
Spliterator<E> a Spliterator over the elements in this sorted set

subSet

Added in API level 1
SortedSet<E> subSet (E fromElement, 
                E toElement)

返回此集合的部分视图,其元素范围从fromElement (含)到toElement (独占)。 (如果fromElementtoElement相等,则返回的集合是空的。)返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

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

Parameters
fromElement E: low endpoint (inclusive) of the returned set
toElement E: high endpoint (exclusive) of the returned set
Returns
SortedSet<E> a view of the portion of this set whose elements range from fromElement, inclusive, to toElement, exclusive
Throws
ClassCastException if fromElement and toElement cannot be compared to one another using this set's comparator (or, if the set has no comparator, using natural ordering). Implementations may, but are not required to, throw this exception if fromElement or toElement cannot be compared to elements currently in the set.
NullPointerException if fromElement or toElement is null and this set does not permit null elements
IllegalArgumentException if fromElement is greater than toElement; or if this set itself has a restricted range, and fromElement or toElement lies outside the bounds of the range

tailSet

Added in API level 1
SortedSet<E> tailSet (E fromElement)

返回该元素大于或等于fromElement的部分视图。 返回的集合由此集合支持,因此返回集合中的更改将反映在此集合中,反之亦然。 返回的集合支持此集合支持的所有可选集操作。

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

Parameters
fromElement E: low endpoint (inclusive) of the returned set
Returns
SortedSet<E> a view of the portion of this set whose elements are greater than or equal to fromElement
Throws
ClassCastException if fromElement is not compatible with this set's comparator (or, if the set has no comparator, if fromElement does not implement Comparable). Implementations may, but are not required to, throw this exception if fromElement cannot be compared to elements currently in the set.
NullPointerException if fromElement is null and this set does not permit null elements
IllegalArgumentException if this set itself has a restricted range, and fromElement lies outside the bounds of the range

Hooray!