模块  java.base
软件包  java.util

Class AbstractSequentialList<E>

  • 实现的所有接口
    Iterable<E>Collection<E>List<E>
    已知直接子类:
    LinkedList

    public abstract class AbstractSequentialList<E>
    extends AbstractList<E>
    此类提供List接口的List实现,以最大限度地减少实现由“顺序访问”数据存储(例如链接列表)支持的此接口所需的工作量。 对于随机访问数据(例如数组),应优先使用AbstractList

    这个类是相反AbstractList在某种意义上类,它实现了“随机访问”方法( get(int index)set(int index, E element)add(int index, E element)remove(int index)在列表的列表迭代器的顶部),而不是周围的其他方法。

    要实现列表,程序员只需要扩展此类并提供listIteratorsize方法的实现。 对于一个不可修改的列表,程序员只需要实现列表迭代器的hasNextnexthasPreviouspreviousindex方法。

    对于可修改的列表,程序员还应该实现list iterator的set方法。 对于可变大小的列表,程序员还应该实现列表迭代器的removeadd方法。

    程序员通常应根据Collection接口规范中的建议提供void(无参数)和集合构造函数。

    此类是Java Collections Framework的成员。

    从以下版本开始:
    1.2
    另请参见:
    CollectionListAbstractListAbstractCollection
    • 构造方法详细信息

      • AbstractSequentialList

        protected AbstractSequentialList()
        唯一的构造函数。 (对于子类构造函数的调用,通常是隐式的。)
    • 方法详细信息

      • get

        public E get​(int index)
        返回此列表中指定位置的元素。

        此实现首先获取指向索引元素的列表迭代器(使用listIterator(index) )。 然后,它使用ListIterator.next获取元素并返回它。

        Specified by:
        get在界面 List<E>
        Specified by:
        get在课程 AbstractList<E>
        参数
        index - 要返回的元素的索引
        结果
        此列表中指定位置的元素
        异常
        IndexOutOfBoundsException - 如果指数超出范围( index < 0 || index >= size()
      • set

        public E set​(int index,
                     E element)
        用指定的元素替换此列表中指定位置的元素(可选操作)。

        此实现首先获取指向索引元素的列表迭代器(使用listIterator(index) )。 然后,它使用ListIterator.next获取当前元素并将其替换为ListIterator.set

        注意,此实现将抛出UnsupportedOperationException如果列表迭代器没有实现set操作。

        Specified by:
        set在界面 List<E>
        重写:
        set在类 AbstractList<E>
        参数
        index - 要替换的元素的索引
        element - 要存储在指定位置的元素
        结果
        先前在指定位置的元素
        异常
        UnsupportedOperationException - 如果此列表不支持 set操作
        ClassCastException - 如果指定元素的类阻止将其添加到此列表中
        NullPointerException - 如果指定的元素为null,并且此列表不允许null元素
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此列表中
        IndexOutOfBoundsException - 如果索引超出范围( index < 0 || index >= size()
      • add

        public void add​(int index,
                        E element)
        将指定元素插入此列表中的指定位置(可选操作)。 将当前位置的元素(如果有)和任何后续元素向右移动(将其添加到索引中)。

        此实现首先获取指向索引元素的列表迭代器(使用listIterator(index) )。 然后,它使用ListIterator.add插入指定的元素。

        注意,此实现将抛出UnsupportedOperationException如果列表迭代器没有实现add操作。

        Specified by:
        add在界面 List<E>
        重写:
        add在类 AbstractList<E>
        参数
        index - 要插入指定元素的索引
        element - 要插入的元素
        异常
        UnsupportedOperationException - 如果此列表不支持 add操作
        ClassCastException - 如果指定元素的类阻止将其添加到此列表中
        NullPointerException - 如果指定的元素为null且此列表不允许null元素
        IllegalArgumentException - 如果指定元素的某些属性阻止将其添加到此列表中
        IndexOutOfBoundsException - 如果指数超出范围( index < 0 || index > size()
      • remove

        public E remove​(int index)
        删除此列表中指定位置的元素(可选操作)。 将任何后续元素向左移位(从索引中减去一个元素)。 返回从列表中删除的元素。

        此实现首先获取指向索引元素的列表迭代器(使用listIterator(index) )。 然后,它使用ListIterator.remove删除元素。

        注意,此实现将抛出UnsupportedOperationException如果列表迭代器没有实现remove操作。

        Specified by:
        remove在界面 List<E>
        重写:
        remove in class AbstractList<E>
        参数
        index - 要删除的元素的索引
        结果
        先前在指定位置的元素
        异常
        UnsupportedOperationException - 如果此列表不支持 remove操作
        IndexOutOfBoundsException - 如果指数超出范围( index < 0 || index >= size()
      • addAll

        public boolean addAll​(int index,
                              Collection<? extends E> c)
        将指定集合中的所有元素插入到指定位置的此列表中(可选操作)。 将当前位置的元素(如果有)和任何后续元素向右移动(增加其索引)。 新元素将按照指定集合的迭代器返回的顺序出现在此列表中。 如果在操作正在进行时修改了指定的集合,则此操作的行为是不确定的。 (请注意,如果指定的集合是此列表,则会发生这种情况,并且它是非空的。)

        此实现获取指定集合上的迭代器以及指向索引元素的列表上的列表迭代器(使用listIterator(index) )。 然后,它迭代指定的集合,将从迭代器获得的元素一次一个地插入到此列表中,使用ListIterator.add然后是ListIterator.next (跳过添加的元素)。

        注意,此实现将抛出UnsupportedOperationException如果返回的列表迭代listIterator方法没有实现add操作。

        Specified by:
        addAll in interface List<E>
        重写:
        addAll在课程 AbstractList<E>
        参数
        index - 从指定集合中插入第一个元素的索引
        c - 包含要添加到此列表的元素的集合
        结果
        true如果此列表因呼叫而更改
        异常
        UnsupportedOperationException - 如果此列表不支持 addAll操作
        ClassCastException - 如果指定集合的元素的类阻止将其添加到此列表中
        NullPointerException - 如果指定的集合包含一个或多个null元素,并且此列表不允许null元素,或者指定的集合为null
        IllegalArgumentException - 如果指定集合的元素的某些属性阻止将其添加到此列表中
        IndexOutOfBoundsException - 如果指数超出范围( index < 0 || index > size()
      • listIterator

        public abstract ListIterator<E> listIterator​(int index)
        返回此列表中元素的列表迭代器(按适当顺序)。
        Specified by:
        listIterator在界面 List<E>
        重写:
        listIterator在类 AbstractList<E>
        参数
        index - 从列表迭代器返回的第一个元素的索引(通过调用 next方法)
        结果
        列表中的元素列表迭代器(按正确顺序)
        异常
        IndexOutOfBoundsException - 如果指数超出范围( index < 0 || index > size()