list.toArray(new String[0])与list.toArray()的区别
- list.toArray(new String[0]):返回集合中所有元素的一个数组表示形式;返回的数组运行时类型和指定数组的运行类型相同.也就是说参数的类型也就是返回类型.
- toArray()是返回一个Object[],然后对对象进行拷贝;带参数的是根据参数数组类型,返回一个对应类型,长度和调用用对象长度相同的空数组.
注意 如果参数中的数组容量大小大于所调用对象则按参数大小创建.
public static void ArrayListTest(){
List<String> list = new ArrayList<>();
list.add("");
list.add("");
list.add("");
list.add("");
String[] result = list.toArray(new String[0]); // 返回和参数相同类型,大小为list的大小 4
String[] result = list.toArray(new String[6]); // 返回和参数相同类型,大小为list的大小 6,超出部分为null
}