Module java.base
Package java.util

Interface SequencedCollection<E>

类型参数:
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

public interface SequencedCollection<E> extends Collection<E>
具有明确定义的遭遇顺序、支持两端操作且可逆的集合。序列化集合的元素具有一个遭遇顺序,在概念上,元素从第一个元素到最后一个元素有一个线性排列。给定任意两个元素,一个元素要么在另一个元素之前(更接近第一个元素),要么在另一个元素之后(更接近最后一个元素)。

(请注意,此定义并不意味着任何关于元素的物理位置的内容,比如它们在计算机内存中的位置。)

Collection接口继承的几种方法要求根据此集合的遭遇顺序对元素进行操作。例如,iterator方法提供从第一个元素开始的元素,依次通过连续元素,直到最后一个元素。其他要求根据遭遇顺序对元素进行操作的方法包括以下内容:forEachparallelStreamspliteratorstream,以及所有的toArray方法的重载。

此接口提供了在集合的两端添加、检索和删除元素的方法。

此接口还定义了reversed方法,它提供了此集合的逆序视图。在逆序视图中,第一个和最后一个的概念被颠倒,后继和前驱的概念也被颠倒。此集合的第一个元素是逆序视图的最后一个元素,反之亦然。此集合中某个元素的后继是其在逆序视图中的前驱,反之亦然。所有尊重集合遭遇顺序的方法都会像遭遇顺序被倒置一样操作。例如,逆序视图的Collection.iterator()方法按照从此集合的最后一个元素到第一个元素的顺序报告元素。reversed方法的可用性及其对所有适用方法的排序语义的影响,允许方便地按照正向顺序或逆向顺序迭代、搜索、复制和流式处理此集合的元素。

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

API注释:
此接口不对equalshashCode方法施加任何要求,因为子接口ListSequencedSet(继承自Set的要求)所施加的要求会发生冲突。有关更多信息,请参阅Collection.equalsCollection.hashCode的规范。
自:
21
  • Method Details

    • reversed

      SequencedCollection<E> reversed()
      返回此集合的逆序视图。返回视图中元素的遭遇顺序与此集合中元素的遭遇顺序相反。逆序排序会影响所有对顺序敏感的操作,包括对返回视图的视图集合的操作。如果集合实现允许对此视图进行修改,则修改会“写入”到基础集合。对基础集合的更改可能会或可能不会在此逆序视图中可见,这取决于实现。
      返回:
      此集合的逆序视图
    • addFirst

      default void addFirst(E e)
      将元素作为此集合的第一个元素添加(可选操作)。此操作正常完成后,给定元素将成为此集合的成员,并且它将是遭遇顺序中的第一个元素。
      实现要求:
      此接口中的实现始终会抛出UnsupportedOperationException
      参数:
      e - 要添加的元素
      抛出:
      NullPointerException - 如果指定的元素为null且此集合不允许空元素
      UnsupportedOperationException - 如果此集合实现不支持此操作
    • addLast

      default void addLast(E e)
      将元素作为此集合的最后一个元素添加(可选操作)。此操作正常完成后,给定元素将成为此集合的成员,并且它将是遭遇顺序中的最后一个元素。
      实现要求:
      此接口中的实现始终会抛出UnsupportedOperationException
      参数:
      e - 要添加的元素。
      抛出:
      NullPointerException - 如果指定的元素为null且此集合不允许空元素
      UnsupportedOperationException - 如果此集合实现不支持此操作
    • getFirst

      default E getFirst()
      获取此集合的第一个元素。
      实现要求:
      此接口中的实现会获取此集合的迭代器,然后通过调用迭代器的next方法获取元素。传播任何抛出的NoSuchElementException。否则,返回元素。
      返回:
      检索到的元素
      抛出:
      NoSuchElementException - 如果此集合为空
    • getLast

      default E getLast()
      获取此集合的最后一个元素。
      实现要求:
      此接口中的实现会获取此集合的逆序视图的迭代器,然后通过调用迭代器的next方法获取元素。传播任何抛出的NoSuchElementException。否则,返回元素。
      返回:
      检索到的元素
      抛出:
      NoSuchElementException - 如果此集合为空
    • removeFirst

      default E removeFirst()
      移除并返回此集合的第一个元素(可选操作)。
      实现要求:
      此接口中的实现获取此集合的迭代器,然后通过调用迭代器的next方法获取元素。传播任何抛出的NoSuchElementException。然后调用迭代器的remove方法。传播任何抛出的UnsupportedOperationException。然后返回元素。
      返回:
      被移除的元素
      抛出:
      NoSuchElementException - 如果此集合为空
      UnsupportedOperationException - 如果此集合的实现不支持此操作
    • removeLast

      default E removeLast()
      移除并返回此集合的最后一个元素(可选操作)。
      实现要求:
      此接口中的实现获取此集合的反向视图的迭代器,然后通过调用迭代器的next方法获取元素。传播任何抛出的NoSuchElementException。然后调用迭代器的remove方法。传播任何抛出的UnsupportedOperationException。然后返回元素。
      返回:
      被移除的元素
      抛出:
      NoSuchElementException - 如果此集合为空
      UnsupportedOperationException - 如果此集合的实现不支持此操作