黑马程序员技术交流社区

标题: ArrayList空构造函数初始容量到底是不是10啊? [打印本页]

作者: 晓月残魂    时间: 2015-8-2 22:43
标题: ArrayList空构造函数初始容量到底是不是10啊?
从JDK文档看,ArrayList的空构造函数的初始容量是10,但是我从源码看是0啊?

下面是ArrayList中的源码
  1. public ArrayList() {
  2.         super();
  3.         this.elementData = EMPTY_ELEMENTDATA;
  4.     }


  5.     private static final Object[] EMPTY_ELEMENTDATA = {};
复制代码

作者: 晓月残魂    时间: 2015-8-3 17:08
自己定个~~
作者: Wqi    时间: 2015-8-3 18:50
初始是容量10的空列表。新建的没元素,size是0。
作者: 晓月残魂    时间: 2015-8-6 22:09
Wqi 发表于 2015-8-3 18:50
初始是容量10的空列表。新建的没元素,size是0。

但是  在源码中EMPTY_ELEMENTDATA = {};啊
作者: 天地一沙鸥    时间: 2015-8-6 23:07
晓月残魂 发表于 2015-8-6 22:09
但是  在源码中EMPTY_ELEMENTDATA = {};啊

这个是说里面没元素,但是它的初始容量是10.
容量和长度是两个概念。
作者: 晓月残魂    时间: 2015-8-6 23:14
天地一沙鸥 发表于 2015-8-6 23:07
这个是说里面没元素,但是它的初始容量是10.
容量和长度是两个概念。

API文档:
     public ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。
源码:
    public ArrayList(int initialCapacity) {
        super();
        if (initialCapacity < 0)
            throw new IllegalArgumentException("Illegal Capacity: "+
                                               initialCapacity);
        this.elementData = new Object[initialCapacity];//我感觉这个initialCapacity才是容量
    }
作者: godboy001    时间: 2015-8-7 19:21
楼上说的比较有道理啊




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2