数据结构Colleaction-----ArrayList

 @Override public boolean add(E object) {
    //使用局部变量操作集合,处于安全性考虑,不在array变量上进行操作
    Object[] a = array;
    int s = size;
    //该if条件说明,元素数量和数组长度相等,这表示需要对于数组进行扩容
    if (s == a.length) {
        //扩容采用三目运算符进行,这里就使用掉了前文说过的容量调优参MIN_CAPACITY_INCREMENT
        Object[] newArray = new Object[s +
                (s < (MIN_CAPACITY_INCREMENT / 2) ?
                 MIN_CAPACITY_INCREMENT : s >> 1)];
        //native的copy方法复制一个新的数组
        System.arraycopy(a, 0, newArray, 0, s);
        array = a = newArray;
    }
    //将数据添加到数组中
    a[s] = object;
    //集合元素数量+1
    size = s + 1;
    //计数器+1
    modCount++;
    return true;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容