ArrayList是基于数组的, 内部是用 Object[]实现的
当new 一个空参 ArrayList 的时候,系统生成一个长度为0的Object数组。
当new一个有参的ArrayList的时候,该值作为数组的长度值。如果该值小于 0,则抛出一个运行时异常。如果等于 0,则使用一个空数组,如果大于 0,则创建一个长度为该值的新数组。
当向集合添加的且长度不够时,把原来的数组Copy到一个约原数组1.5倍大的新的数组里(int newCapacity = (oldCapacity * 3)/2 + 1;)
在删除元素中,删除了一个元素,集合整体向前移动了一位,然后将集合最后一 个元素设置为 null。
清空操作中,如果集合长度不等于 0,则将所有数组的值都设置为 null,然后将成员变量 size 设置为 0 。