- 类型参数:
-
E
- 此集合中元素的类型
- 所有超接口:
-
Collection<E>
,Iterable<E>
- 所有已知子接口:
-
BlockingDeque<E>
,Deque<E>
,List<E>
,NavigableSet<E>
,SequencedSet<E>
,SortedSet<E>
- 所有已知实现类:
-
AbstractList
,AbstractSequentialList
,ArrayDeque
,ArrayList
,AttributeList
,ConcurrentLinkedDeque
,ConcurrentSkipListSet
,CopyOnWriteArrayList
,LinkedBlockingDeque
,LinkedHashSet
,LinkedList
,RoleList
,RoleUnresolvedList
,Stack
,TreeSet
,Vector
具有明确定义的遭遇顺序、支持两端操作且可逆的集合。序列化集合的元素具有一个遭遇顺序,在概念上,元素从第一个元素到最后一个元素有一个线性排列。给定任意两个元素,一个元素要么在另一个元素之前(更接近第一个元素),要么在另一个元素之后(更接近最后一个元素)。
(请注意,此定义并不意味着任何关于元素的物理位置的内容,比如它们在计算机内存中的位置。)
从Collection
接口继承的几种方法要求根据此集合的遭遇顺序对元素进行操作。例如,iterator
方法提供从第一个元素开始的元素,依次通过连续元素,直到最后一个元素。其他要求根据遭遇顺序对元素进行操作的方法包括以下内容:forEach
、parallelStream
、spliterator
、stream
,以及所有的toArray
方法的重载。
此接口提供了在集合的两端添加、检索和删除元素的方法。
此接口还定义了reversed
方法,它提供了此集合的逆序视图。在逆序视图中,第一个和最后一个的概念被颠倒,后继和前驱的概念也被颠倒。此集合的第一个元素是逆序视图的最后一个元素,反之亦然。此集合中某个元素的后继是其在逆序视图中的前驱,反之亦然。所有尊重集合遭遇顺序的方法都会像遭遇顺序被倒置一样操作。例如,逆序视图的Collection.iterator()
方法按照从此集合的最后一个元素到第一个元素的顺序报告元素。reversed
方法的可用性及其对所有适用方法的排序语义的影响,允许方便地按照正向顺序或逆向顺序迭代、搜索、复制和流式处理此集合的元素。
此类是Java集合框架的成员。
- API注释:
-
此接口不对
equals
和hashCode
方法施加任何要求,因为子接口List
和SequencedSet
(继承自Set
的要求)所施加的要求会发生冲突。有关更多信息,请参阅Collection.equals
和Collection.hashCode
的规范。 - 自:
- 21
-
Method Summary
-
Method Details
-
reversed
SequencedCollection<E> reversed()返回此集合的逆序视图。返回视图中元素的遭遇顺序与此集合中元素的遭遇顺序相反。逆序排序会影响所有对顺序敏感的操作,包括对返回视图的视图集合的操作。如果集合实现允许对此视图进行修改,则修改会“写入”到基础集合。对基础集合的更改可能会或可能不会在此逆序视图中可见,这取决于实现。- 返回:
- 此集合的逆序视图
-
addFirst
将元素作为此集合的第一个元素添加(可选操作)。此操作正常完成后,给定元素将成为此集合的成员,并且它将是遭遇顺序中的第一个元素。- 实现要求:
-
此接口中的实现始终会抛出
UnsupportedOperationException
。 - 参数:
-
e
- 要添加的元素 - 抛出:
-
NullPointerException
- 如果指定的元素为null且此集合不允许空元素 -
UnsupportedOperationException
- 如果此集合实现不支持此操作
-
addLast
将元素作为此集合的最后一个元素添加(可选操作)。此操作正常完成后,给定元素将成为此集合的成员,并且它将是遭遇顺序中的最后一个元素。- 实现要求:
-
此接口中的实现始终会抛出
UnsupportedOperationException
。 - 参数:
-
e
- 要添加的元素。 - 抛出:
-
NullPointerException
- 如果指定的元素为null且此集合不允许空元素 -
UnsupportedOperationException
- 如果此集合实现不支持此操作
-
getFirst
获取此集合的第一个元素。- 实现要求:
-
此接口中的实现会获取此集合的迭代器,然后通过调用迭代器的
next
方法获取元素。传播任何抛出的NoSuchElementException
。否则,返回元素。 - 返回:
- 检索到的元素
- 抛出:
-
NoSuchElementException
- 如果此集合为空
-
getLast
获取此集合的最后一个元素。- 实现要求:
-
此接口中的实现会获取此集合的逆序视图的迭代器,然后通过调用迭代器的
next
方法获取元素。传播任何抛出的NoSuchElementException
。否则,返回元素。 - 返回:
- 检索到的元素
- 抛出:
-
NoSuchElementException
- 如果此集合为空
-
removeFirst
移除并返回此集合的第一个元素(可选操作)。- 实现要求:
-
此接口中的实现获取此集合的迭代器,然后通过调用迭代器的
next
方法获取元素。传播任何抛出的NoSuchElementException
。然后调用迭代器的remove
方法。传播任何抛出的UnsupportedOperationException
。然后返回元素。 - 返回:
- 被移除的元素
- 抛出:
-
NoSuchElementException
- 如果此集合为空 -
UnsupportedOperationException
- 如果此集合的实现不支持此操作
-
removeLast
移除并返回此集合的最后一个元素(可选操作)。- 实现要求:
-
此接口中的实现获取此集合的反向视图的迭代器,然后通过调用迭代器的
next
方法获取元素。传播任何抛出的NoSuchElementException
。然后调用迭代器的remove
方法。传播任何抛出的UnsupportedOperationException
。然后返回元素。 - 返回:
- 被移除的元素
- 抛出:
-
NoSuchElementException
- 如果此集合为空 -
UnsupportedOperationException
- 如果此集合的实现不支持此操作
-