使用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);