集合的介绍以及与数组的使用选择
1.集合介绍
关于容器,我们学过两个,一个是StringBuilder,另一个就是数组,在这里,数组的功能似乎与集合更相近,那我们为什么还要学习集合?
我们引用一个例子进行解释,如图,假如我们买了三样东西,并将它们用容器装起来
如果我们用的是数组装,那么长度就固定了,假如我们突然又想买第四个东西,那么,就没有地方进行存储
但是,集合的长度是可变的,所以我们用集合就可以装入第四样物品,这就是为什么要学习集合的原因
2.Arraylist介绍
集合中有许多类,ArrayList就是其中之一,也是我们重点要学的类。
有人可能会认为,既然集合和数组都可以装东西,而且集合限制还更少,那么数组以后就可以舍弃,那不妨先看看ArrayList的原理
ArrayList长度可变原理
当创建ArrrayList时,底层会存在一个长度为10的空数组,用于储存元素
如果此时要装入第11个元素,ArrayList就会按照1.5倍扩充数组长度
然后,先将之前的元素拷贝到新的数组,之前的数组就会变为垃圾等待被清理
接着,再把第11个元素装入数组