ArrayList(数组列表)、LinkedList的区别

ArrayList 底层是一个数组。ArrayList的中文名为“数组列表”
数组结构的特点是元素增删慢,查找快。
由于java.util.ArrayList 集合数据存储的结构是数组结构,所以它的特点也是元素增删慢,但是查询快。

java.util.LinkedList 集合数据存储的结构是链表结构。方便元素添加、删除的集合。
元素添加,删除速度快,而查询速度慢。

list列表数据是有序的。这里的查询指的都是按照索引查询

数组列表按照索引查询数据的代码
E elementData(int index) {
        return (E) elementData[index];
    }

// 链表按照索引查询节点的代码
Node<E> node(int index) {
        // assert isElementIndex(index);

        if (index < (size >> 1)) {
            Node<E> x = first;
            for (int i = 0; i < index; i++)
                x = x.next;
            return x;
        } else {
            Node<E> x = last;
            for (int i = size - 1; i > index; i--)
                x = x.prev;
            return x;
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容