@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;
}
数据结构Colleaction-----ArrayList
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- http://blog.csdn.net/qiaoquan3/article/details/51380992
- 前言 前一篇我们对数据结构有了个整体的概念上的了解,没看过的小伙伴们可以看我的上篇文章:一文十三张图带你彻底了解所...
- arraylist https://blog.csdn.net/jianyuerensheng/article/d...
- List接口 首先我们需要定义所有需要的方法,比如添删该查等 实现ArrayList 首先我们需要参数。一个数组和...