ArrayList和LinkedList有什么联系和区别呢?
下文笔者讲述Arraylist和LinkedList之间的区别和联系,如下所示
一、联系及相同点
1.1两者都实现了相同的接口 java.util.List、Cloneable、java.io.Serializable。 1.2两者都支持泛型,都支持克隆,都支持序列化 1.3两者都不是线程安全
二、ArrayList和LinkedList的区别
1、ArrayList继承了AbstractList类 LinkedList继承了AbstractSequentialList类,而AbstractSequentialLis继承了AbstractList LinkedList继承的AbstractSequentialList 实现get(int index) set(int index, E element) add(int index, E element) remove(int index) 降低List接口的复杂度 2、ArrayList和LinkedList的内部实现的数据结构不同 ArrayList内部是由数组是实现 LinkedList内部是由循环双向链表实现 由于ArrayList是由数组实现的,所以ArrayList在进行查找速度要优于由链表实现的LinkedList 但删除添加操作时 LinkedList速度要优于ArrayList 即:数据查找时,使用ArrayList 而插入和删除操作比较多时,使用LinkedList 3、LinkedList需要更多的内存空间 因为它除了要存储数据之外,还需要存储该节点的前后节点信息 ArrayList索引处就是存的数据
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。