我在某处看到java.util.List
定义如下。
List<String> myList = new ArrayList<String>(0);
谁能解释括号中的整数的作用以及如何使用它?谢谢。
6 回答
该参数决定了启动容量ArrayList
。
An 在ArrayList
内部分配内存以保存一定数量的对象。当您添加更多元素时,它必须分配更多内存并将所有数据复制到新位置,这需要一些时间。因此,您可以指定要放入多少对象ArrayList
以帮助 Java。
起始大小0
可能表示程序员认为ArrayList
将很少使用,因此无需为其开始分配内存。
[编辑]
澄清一下,正如@LuiggiMendoza 和@emory 在讨论中所说的那样,很难想到将其0
用作初始容量的场景。在大多数情况下,默认构造函数工作得很好。
定义 ArrayList 的初始容量。
它是定义的初始容量ArrayList
。
如果需要,您不必传递大小参数,因为有一个构造函数也没有参数。
每当您添加一个附加元素时,如果列表大小不允许添加,List
该类将List
在 中创建另一个Heap
更大的元素,并将旧的内容与附加元素一起复制array
到它,删除旧的array
。
初始实例化的容量用于创建确切size
的内容,这有助于通过创建新的、删除旧的和在运行时复制内容List
来帮助不分配额外的内存块,这有助于提高性能。Lists
它指定列表的容量
不要与数组列表的大小及其容量混淆:
- 大小是列表中元素的数量;
- 容量是列表可以容纳多少元素而不重新分配其内部结构。
当您调用 时new ArrayList<String>(0)
,您正在设置列表的初始容量,而不是其大小。换句话说,当以这种方式构造时,数组列表开始它的生命是空的。
当用作
List<String> strList = new ArrayList<String>(5);
它构造一个具有指定初始容量的空列表。
默认情况下,未指定任何内容。
List<String> strList = new ArrayList<String>;
构造一个初始容量为 10 的空列表。
在这里阅读
不要将其误解为 ArrayList 的大小。