java arraylist中的参数(int初始容量)是什么意思
参数(int initialCapacity)
在ArrayList
中的意思是什么,我以为是元素的数量,但我这样做时它不起作用:
public class MyClass {
private ArrayList<Integer> arr;
public MyClass(int n_elements) {
arr = new ArrayList<Integer>(n_elements);
}
}
# 1 楼答案
实际上,它是指在
ArrayList
在后台调整大小之前可以添加多少元素,如果使用正确,可以节省一些周期# 2 楼答案
它是初始容量,即
ArrayList
将分配作为项目内部存储的项目数量ArrayList
可以包含“任意数量的项”(只要您有足够的内存),并且在执行大型初始插入时,您可以告诉ArrayList
首先分配一个更大的存储空间,以避免在尝试为下一项分配更多空间时浪费CPU周期例如:
# 3 楼答案
容量是对象内部存储的大小。内部存储总是大于或等于列表的size()(以便它可以包含所有元素)
运行此命令将提供:
# 4 楼答案
在引擎盖下,
ArrayList
本质上是一个dynamic array。每次使用new Arraylist<>()
进行实例化时,都会创建一个数组来保存要存储的值,其默认容量not to be confused with size为10每次您添加一个值,该值会将大小增加到容量之外,此时将创建一个新数组,其容量比以前的容量大150%,并且以前的数组的内容将在其中复制
如果您对结果列表的大小有一个大致的了解,或者是确定的,但希望通过使用ArrayList而不是数组提供灵活性,那么您可以设置容量,以防止创建新数组、将旧数组的内容复制到新数组中的重复过程,并且去掉旧的一个——否则,它的出现次数将与列表的大小成比例增加
# 5 楼答案
Arraylist的大小和容量不同
例如: 在下面的arraylist中,初始容量为3,列表大小为0,因为列表中还没有元素
ArrayList=新的ArrayList(3)