ArrayList的内部存储的原理是数组,Object[]数组,默认长度为10,若是超过10,则自动扩容,规则是((旧容量*3)/2)+1
一、内存开销
若是存储利用ArrayList存储2个Object,会创建10存储空间,则会浪费8存储空间
若是存储利用ArrayList存储11个Object,会创建16存储空间,则会浪费5存储空间
若是存储利用ArrayList存储17个Object,会创建25存储空间,则会浪费8存储空间
若是存储利用ArrayList存储26个Object,会创建38存储空间,则会浪费12存储空间
以此类推,若是在项目中创建很多的ArrayList,岂不是浪费很多的存储空间
二、时间开销
如果数据量很大,那么造成数组重新分配的次数会增加,但对于一般的数据量下,
1千需要分配 11次
1万一级需要分配17次
10万 需要分配23次
100万需要分配28次