ArrayList

1. 插入的时候首先检查容量大小,不够就直接扩容,扩容就是按1.5倍扩容(原来大小+原来大小*0.5)

2. ArrayList的底层存储是数组,因为数组要求内存连续性,所以扩容的时候是新创建一个数组,重新开辟一块连续的内存空间,然后做数据搬移。为了减少内部数组自动扩容,建议如果事先知道数据大小,提前指定容器大小,避免扩容带来的性能消耗。

3.这块不保证线程安全性,官方推荐使用collections.synchoronizedArrayList,当然也可以使用JUC 的 copyOnWriteArrayList

 

posted @ 2019-12-25 09:38  金圣  阅读(434)  评论(0)    收藏  举报