Advertisement

ArrayList与LinkedList的差异(面试常考)

阅读量:

在近期的秋季招聘面试过程中,这道题目频繁出现,尽管本人能够给出答案,但始终觉得存在一定的不足,因此决定进行归纳整理。

ArrayList 与 LinkedList 均对 List 接口进行了实现。

复制代码
    public class ArrayList<E> extends AbstractList<E>
        implements List<E>, RandomAccess, Cloneable, java.io.Serializable
        
    public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
    
    
    

从实现层面来看,LinkedList 类型不仅具备了 List 接口的功能,还额外实现了 Deque 接口,从而能够作为双向队列的实现方式。

ArrayList 的底层结构基于动态数组,具备自动扩展的能力,每次扩容时容量会增加至原来的 1.5 倍。与基础数组相比,它对数组插入、删除以及扩容等操作进行了封装,简化了相关细节的处理过程
此外,该结构支持随机访问特性 ,然而在进行元素的

全部评论 (0)

还没有任何评论哟~