有人可以解释一下内部数组列表是如何工作的吗?我的意思是问究竟是怎么回事 数组列表增加长度并添加新项目。内部如何工作?我想要解释内部数组列表如何增加长度和添加新项目。
答案 0 :(得分:0)
在内部,ArrayList
(显然)使用数组来存储值。 List<T>
也是如此。
如果您查看EnsureCapacity(int)
(和ArrayList
)的隐私方法List<T>
,当ArrayList
不足以容纳List<T>
时,您会看到下一项,分配一个新的内部数组,其大小是前一个数组的两倍。执行此操作后,较小数组的内容将复制到新数组。
这些都是实现细节,但你不能确定每个实现都以相同的方式(我猜)。
无论如何,在这种情况下你应该使用{{1}}。它的工作方式与ArrayList相同,但您也具有类型安全性。