为什么LinkedListArrayList在Java中扩展了AbstractList

当我们要在实现类中指定常见行为时,将使用抽象类。

但是AbstractListArrayList覆盖了LinkedList中的所有方法。

那么扩展此类的用途是什么?

最佳答案

subList(int,int)ArrayList都不能覆盖LinkedList方法,为此AbstractList提供了一个通用实现

从Java来源

public List<E> subList(int fromIndex, int toIndex) {
        return (this instanceof RandomAccess ?
                new RandomAccessSubList<E>(this, fromIndex, toIndex) :
                new SubList<E>(this, fromIndex, toIndex));
    }

此外,还有其他未覆盖的方法,例如toString()iterator()

10-08 20:18