为什么LinkedList和arraylist在Java中扩展AbstractList?

拉吉:

为什么LinkedListArrayList扩展AbstractList的Java

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

但是和中的所有方法AbstractList都被ArrayList覆盖LinkedList

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

sanbhat:

subList(int,int)方法不受既重写ArrayListLinkedList,为此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()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么arraylist类要实现List并扩展AbstractList?

Java中的AbstractList和List

Java中的LinkedList:为什么从扩展类间接实现List的原因

Java中LinkedList和arrayList的双向链接列表的内部工作有什么区别

什么时候在 Java 中使用 ArrayList、LinkedList 和 Stack?

为什么 ArrayList 的性能明显优于 LinkedList?

为什么Java的AbstractList的removeRange()方法受到保护?

为什么listIterator参数在AbstractList的源代码中是最终的?

为什么无法在Java中扩展注释?

为什么LinkedList在Java中没有initialCapacity?

为什么我需要 Java 中的 Node 类用于 LinkedList?

<?扩展Class>和<?Java中的超级类>-为什么这样工作?

Java的LinkedList中的getFirst()和peekFirst()有什么区别?

为什么在LinkedList中循环执行Add操作要比ArrayList花费更长的时间?

为什么toString()方法在Java中的Array和ArrayList对象之间工作不同

ArrayList<Class< 是什么?扩展......在Java中的意思

为什么 ArrayList.removeRange() 在扩展 ArrayList 的 RoleList 类中不可见?

为什么在java.util.Collections中声明了静态java.util.Collections.fill()方法而不是在java.util.AbstractList中声明了实例方法?

何时在Java中通过ArrayList使用LinkedList?

考虑到 ArrayList 没有大小限制,Java 中的 LinkedList 的目的是什么?

为什么某些语言(例如C ++和Java)具有内置的LinkedList数据结构?

为什么需要Java中LinkedList的poll()方法中的最终定义

为什么ArrayList中的排序方法比阵列在Java快?

为什么我在java中的arraylist自己变空了

为什么java.util.Arraylist#clear是在OpenJDK中实现的?

为什么在Java中这是合法的?Queue <String>等待队列=新的LinkedList <>();

Java中的快速LinkedList搜索和删除

删除和排序 LinkedList 中的项目 - Java

LinkedList和ArrayList实现的区别?