Java AbstractSequentialList 详解 - TongtongLan/Java GitHub Wiki

JDK 中仅有一个subclass —— java.util.LinkedList

该类提供了List接口的骨架实现,以最大限度地减少实现由“顺序访问”数据存储(如链接列表)支持的接口所需的工作量。对于随机访问数据(如数组),应该优先使用AbstractList。

这个类与AbstractList类相反,它通过列表的迭代器实现了“随机访问”方法(get(int index),set(int index,E element),add(int index,E element)和remove(int index ))。

要实现一个列表,程序员只需要扩展这个类并为 listIteratorsize 方法提供实现。对于不可修改的列表,程序员只需要实现列表迭代器的 boolean hasNext();E next();boolean hasPrevious();E previous();int previousIndex();int nextIndex();方法。

对于一个可修改的列表,程序员应该另外实现列表迭代器的 void set(E e); 方法。对于一个可变大小的列表,程序员应该另外实现列表迭代器的void remove();void add(E e); 方法。

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