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