A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

从JDK文档看,ArrayList的空构造函数的初始容量是10,但是我从源码看是0啊?

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


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

6 个回复

倒序浏览
自己定个~~
回复 使用道具 举报
初始是容量10的空列表。新建的没元素,size是0。
回复 使用道具 举报
Wqi 发表于 2015-8-3 18:50
初始是容量10的空列表。新建的没元素,size是0。

但是  在源码中EMPTY_ELEMENTDATA = {};啊
回复 使用道具 举报
晓月残魂 发表于 2015-8-6 22:09
但是  在源码中EMPTY_ELEMENTDATA = {};啊

这个是说里面没元素,但是它的初始容量是10.
容量和长度是两个概念。
回复 使用道具 举报
天地一沙鸥 发表于 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才是容量
    }
回复 使用道具 举报
楼上说的比较有道理啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马