解决方案 »

  1.   

        /**
         * Default initial capacity.
         */
        private static final int DEFAULT_CAPACITY = 10;    /**
         * Shared empty array instance used for empty instances.
         */
        private static final Object[] EMPTY_ELEMENTDATA = {};    /**
         * The array buffer into which the elements of the ArrayList are stored.
         * The capacity of the ArrayList is the length of this array buffer. Any
         * empty ArrayList with elementData == EMPTY_ELEMENTDATA will be expanded to
         * DEFAULT_CAPACITY when the first element is added.
         */
        private transient Object[] elementData;第一次往list里加数据的时候
    通过这个方法
        private void ensureCapacityInternal(int minCapacity) {
            if (elementData == EMPTY_ELEMENTDATA) {
                minCapacity = Math.max(DEFAULT_CAPACITY, minCapacity);
            }        ensureExplicitCapacity(minCapacity);
        }
    DEFAULT_CAPACITY默认是10
      

  2.   

    构造的时候,容器的长度是0,然后在第一次往list里加数据的时候,设置容器长度为10,不是构造方法赋值