ArrayList底层是一个object数组,线程不安全,这是与Vector的区别。
简单来说,创建ArrayList的时候使用无参构造器会返回内部静态空数组,添加元素时进行第一次扩容,扩到10,之后按1.5倍扩容,直到1.5倍后大于Integer.MAX,比较原数组长度和Integer.MAX,原数组大则用Integer.MAX,否则用Integer.MAX-8。
使用有参构造器除了初始创建时不同,后续扩容原理一致。
ArrayList底层是一个object数组,线程不安全,这是与Vector的区别。
简单来说,创建ArrayList的时候使用无参构造器会返回内部静态空数组,添加元素时进行第一次扩容,扩到10,之后按1.5倍扩容,直到1.5倍后大于Integer.MAX,比较原数组长度和Integer.MAX,原数组大则用Integer.MAX,否则用Integer.MAX-8。
使用有参构造器除了初始创建时不同,后续扩容原理一致。
上一篇:C++中count函数用法
下一篇:RabbitMQ安装
我们该使用ArrayList还是LinkedList?
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M