java - 列表转数组的区别

标签 java arrays list collections

我只是想知道以下两种将列表转换为数组的方法有什么区别。

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/

相关文章:

arrays - bash:如何根据模式从数组中删除元素

R:如何连接向量列表中的字符串向量

javascript - jQuery拆分数组问题

java - 用于取消多个数组嵌套的 Jooq 表示法

java - 如何检查 Java Web Start 应用程序是否会在证书过期后继续工作

java - 实现 KeyListener 代码,Java。无法识别输入

javascript - 如何使用 Javascript 对对象中的年份进行分组?

c - C语言中Stack的数组实现

c - 遍历数组,什么更好,更快等等?

java - 如何使用 ScrollTable 实现自定义 ColumnSorter(GWT 孵化器)