ArrayList介绍
ArrayList是数组列表,是用于存储数据的,它的底层实现是数组 Object[] elementData
ArrayList于LinkedList相比,它的查找和访问元素很快,但是新增、删除的速度较慢,因为涉及到从稳定到混乱再到稳定的过程
ArrayList的特点
是查询效率高,增删效率低,线程不安全
。使用频率很高
为啥线程 不安全还使用他呢?
因为我们正常使用的场景中,都是用来查询,不会涉及太频繁的增删,如果涉及频繁的增删,可以使用LinkedList,如果你需要线程安全就使用Vector(Vector的实现是把所有的方法加上synchronized
),这就是三者的区别了,实际开发过程中还是ArrayList使用最多的。
不存在一个集合工具是查询效率又高,增删效率也高的,还线程安全的,至于为啥大家看代码就知道了,因为数据结构的特性就是优劣共存的,想找个平衡点很难,牺牲了性能,那就安全,牺牲了安全那就快速。
ArrayList1.7开始变化有点大,一个是初始化的时候,1.7以前会调用this(10)才是真正的容量为10,1.7即本身以后是默认走了空数组,只有第一次add的时候容量会变成10。
后面继续补充 https://juejin.im/post/5e14b51d5188253a9a213e83