ArrayList和LinkedList的区别

it2022-05-09  32

以下为jdk1.6中ArrayList中的构造函数源码。

    public ArrayList(int initialCapacity) {        super();        if (initialCapacity < 0)            throw new IllegalArgumentException("Illegal Capacity: "+                                               initialCapacity);        this.elementData = new Object[initialCapacity];    }     /**     * Constructs an empty list with an initial capacity of ten.     */    public ArrayList() {        this(10);    }

可以看出在建立ArrayList对象的时候。默认建立了一个长度为10的Object数组。但是这只是ArrayList 的实现方式。在LinkedList中是这样的。

public LinkedList() {header.next = header.previous = header;}

如果有C 基础的话。应该知道这是链表实现的。这就是为什么LinkedList的增删效率高!查询效率低!而ArrayList 的查询效率高!增删效率低!这就是说其实数组只是集合实现的一种方式。

转载于:https://www.cnblogs.com/gameoverit/p/6165408.html


最新回复(0)