1、ArrayList的类关系:

2、属性及方法
     2.1 构造
          三个构造方法分别对应:
               通过传入初始化容器大小构造数组列表
               构造一个空的数组列表
               通过传入的集合数据构造数组列表容器
     3.1方法
         clone的拷贝模式?
          ArrayList默认clone方法使用Arrays.copyof是浅拷贝(将新的数组引用原数组的对象,修改数组元素会对拷贝后的数组有影响。)
          锁升级?
3、操作
     由于ArrayList底层通过有序列表实现,其插入操作和删除操作时间时间复杂度是O(n),查找操作时间复杂度是O(1)
4、存储控制
     构造ArrayList默认的大小是10
     增长策略:

 private void grow( int minCapacity) {
// overflow-conscious code
int oldCapacity = elementData .length ;
int newCapacity = oldCapacity + (oldCapacity >> 1);//按1.5倍增长
if (newCapacity - minCapacity < 0)
newCapacity = minCapacity ;
if (newCapacity - MAX_ARRAY_SIZE > 0)
newCapacity = hugeCapacity( minCapacity );
// minCapacity is usually close to size, so this is a win:
elementData = Arrays.copyOf( elementData , newCapacity );
} private static int hugeCapacity( int minCapacity) {
if (minCapacity < 0) // overflow
throw new OutOfMemoryError();
return (minCapacity > MAX_ARRAY_SIZE) ?
Integer. MAX_VALUE :
MAX_ARRAY_SIZE ;
}
     ArrayList支持的最大值:    
  private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;
5、并发
     ArrayList在add、set等操作中都没有类似 Synchronization 、lock等处理,该类是非并发安全的类,在并发中应该由开发人员自行控制并发的安全性,或者使用并发安全的集合类替换。

最新文章

  1. 存储程序(1)——MYSQL
  2. 打造AngularJs2.0开发环境
  3. [Google Guava]字符串处理:连接器、拆分器、字符匹配器
  4. Caffe 源碼閱讀(六) data_layer.cpp
  5. winfrom增删改查
  6. 关于this的小总结
  7. android 02 登录
  8. Content-Type实体首部字段
  9. win7 64位系统调试zkemkeeper.dll出错误解决
  10. C++基础知识---static const初始化成员变量
  11. Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能
  12. Python爬取糗事百科
  13. Cygwin获取root权限
  14. Redis模糊查询
  15. 解决sqlserver数据库表空间不自动释放问题
  16. SSH(Spring SpringMVC Hibernate)框架整合
  17. mongodb认识
  18. dva构建react项目
  19. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))
  20. HRBUST - 2358 Magic network

热门文章

  1. Serial Fluent UDF on Windows
  2. tensorflow的数据输入
  3. JavaScript进阶----关于数字的方法,Math对象,日期对象,定时器,函数,for in
  4. 【Codeforces Global Round 1 E】Magic Stones
  5. HyperLedger项目以及社区
  6. 计算机与linux操作系统的发展
  7. Linxu用户管理(转)
  8. 动态加入的HTML的自己主动渲染
  9. iOS中UITextView的操作技巧
  10. Navicat 提示Cannot create oci environment 解决方式