我只是想知道以下两种将列表转换为数组的方法有什么区别。
List<String> test = new ArrayList<String>();
test.add("AB");
test.add("BC");
test.add("CD");
test.add("DE");
test.add("EF");
String[] testarray = test.toArray(new String[0]); // passing 0 as Array size
下面一个:
List<String> test = new ArrayList<String>();
test.add("AB");
test.add("BC");
test.add("CD");
test.add("DE");
test.add("EF");
String[] testarray = test.toArray(new String[test.size()]); // passing list's size
我在控制台上得到了相同的 testarray 输出。
最佳答案
public <T> T[] toArray(T[] a)
a - 这是要存储列表元素的数组,如果它足够大的话;否则,为此分配一个相同运行时类型的新数组。因此,在第一种情况下,会创建一个新数组,而在第二种情况下,它会使用相同的数组。
Sample Code :
情况-1:传递的数组可以包含列表的元素
public static void main(String[] args) {
List<String> test = new ArrayList<String>();
test.add("AB");
test.add("BC");
test.add("CD");
test.add("DE");
test.add("EF");
String[] s= new String[10];
String[] testarray = test.toArray(s);
System.out.println(s==testarray);
}
O/P :
true
Case-2:传递的数组不能容纳列表的元素
public static void main(String[] args) {
List<String> test = new ArrayList<String>();
test.add("AB");
test.add("BC");
test.add("CD");
test.add("DE");
test.add("EF");
String[] s= new String[0];
String[] testarray = test.toArray(s);
System.out.println(s==testarray);
}
O/P :
false
关于java - 列表转数组的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30480980/