使用List数据填充数组

如何使用一个List提供的数据填充数组?

例如,我有一个带字符串的List:

List l = new ArrayList(); l.add("a"); l.add("b"); l.add("c"); 

然后我想将这些数据复制到一个String数组中:

 String[] array = ? 

列表中有一个toArray()方法……
您必须首先分配一个适当大小的数组(通常是list.size()),然后将其作为参数传递给toArray方法。 将使用列表内容初始化该数组。

例如:

 String[] myArray = new String[myList.size](); myList.toArray(myArray); 

您也可以在toArray的括号内进行新的调用

首先,您必须指定List的具体类型 – List (不要保持原始状态)。

然后,你可以做到

 String[] array = list.toArray(new String[list.size()]); 

您可以使用toArray(T[] a)方法:

 String[] arr = list.toArray(new String[0]); 

或者替代地:

 String[] arr = list.toArray(new String[list.size()]); 

两者之间的区别在于后者可能不需要分配新数组。


Effective Java 2nd Edition :第23项:不要在新代码中使用原始类型。

JLS 4.8原始类型

原始类型的使用仅允许作为遗留代码兼容性的让步。 强烈建议不要在将通用性引入Java编程语言之后编写的代码中使用原始类型。 未来版本的Java编程语言可能会禁止使用原始类型。


不要养成命名标识符的习惯l 。 它看起来很像1

语法有点傻瓜; 你必须提供自己创建的数组作为输入。

 String[] array = l.toArray(new String[l.size()]); 
 String[] array = new String[l.size()]; l.toArray(array);