AbstractSequentialList
此类提供List接口的基本实现,以减少实现支持“顺序访问”数据存储(例如链表)的该接口所需的工作。对于随机访问数据(例如数组),应优先使用AbstractList类。
该类与AbstractList类相反,因为它在列表的列表迭代器的顶部实现了“随机访问”方法(get(int index),set(int index, E element),add(int index, E element),remove(int index)),而不是相反。
要实现一个列表,编程者仅需要扩展此类并为listIterator和size方法提供实现。对于不可修改的列表,编程者只需要实现列表迭代器的hasNext,next,hasPrevious,previous和index方法。
对于可修改的列表,编程者应该另外实现列表迭代器的set方法。对于可变大小的列表,程序员应该另外实现列表迭代器的remove和add方法。
根据Collection接口规范中的建议,编程者通常应提供一个void(无参数)和参数为Collection的构造函数。
该接口是Java集合框架的成员接口。
唯一的构造函数。 (用于子类构造函数的调用,通常是隐式的。)
返回此列表中指定位置的元素。
此实现首先获取一个指向索引元素的列表迭代器(使用listIterator(index))。然后,它使用ListIterator.next获取元素并返回它。
用指定的元素替换此列表中指定位置的元素(可选操作)。
此实现首先获取一个指向索引元素的列表迭代器(使用listIterator(index))。然后,它使用ListIterator.next获取当前元素,并将其使用ListIterator.set替换。
请注意,如果列表迭代器未实现set操作,则此实现将抛出UnsupportedOperationException。
将指定的元素插入此列表中的指定位置(可选操作)。将当前在该位置的元素(如果有)和任何后续元素右移(将其索引加一)。
此实现首先获取一个指向指定索引元素的列表迭代器(使用listIterator(index))。然后,它使用ListIterator.add 插入指定的元素。
请注意,如果列表迭代器未实现add操作,则此实现将抛出UnsupportedOperationException。
删除此列表中指定位置的元素(可选操作)。将所有后续元素向左移动(将其索引减一)。返回从列表中删除的元素。
此实现首先获取一个指向指定索引元素的列表迭代器(使用listIterator(index))。然后,它使用ListIterator.remove删除该元素。
请注意,如果列表迭代器未实现remove操作,则此实现将抛出UnsupportedOperationException。
将指定集合中的所有元素插入此列表中的指定位置(可选操作)。将当前在该位置的元素(如果有)和任何后续元素右移(增加其索引)。新元素将按照指定集合的迭代器返回的顺序显示在此列表中。如果在操作进行过程中修改了指定的集合,则此操作的行为是不确定的。 (请注意,如果指定的集合是此列表,并且是非空的,则将发生这种情况。)
此实现在指定集合上获得一个迭代器,并在此列表上获得一个指向指定索引元素的列表迭代器(使用listIterator(index))。然后,遍历指定的集合,使用ListIterator.next(跳过已插入的元素)之后接着使用ListIterator.add,将从迭代器获得的元素一次插入到此列表中。
请注意,如果listIterator方法返回的列表迭代器未实现add操作,则此实现将引发UnsupportedOperationException。
返回此列表中元素的迭代器(按适当顺序)。
此实现仅返回列表上的列表迭代器。
返回此列表中的元素的列表迭代器(按适当顺序)。