ArrayList
标签: IT面试
upupor   752   0 2020-03-10 18:05 
最新一次编辑的原因:
介绍ArrayList

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


本作品系原创,采用《署名-非商业性使用-禁止演绎4.0 国际》许可协议.转载请说明出处
本文链接:https://www.upupor.com/u/20031018054705802240 复制分享

无评论内容,快来评论吧