如何使用一个List提供的数据填充数组?
例如,我有一个带字符串的列表:
List l = new ArrayList<String>();
l.add("a");
l.add("b");
l.add("c");
然后我想将这些数据复制到一个String数组中:
String[] array = ?
答案 0 :(得分:9)
列表中有toArray()方法...
您必须首先分配一个适当大小的数组(通常是list.size()),然后将其作为参数传递给toArray方法。该数组将使用列表内容进行初始化。
例如:
String[] myArray = new String[myList.size]();
myList.toArray(myArray);
您也可以在toArray
的括号内进行新的调用答案 1 :(得分:7)
首先,您必须指定List
- List<String>
的具体类型(不要遗漏)。
然后,你可以做
String[] array = list.toArray(new String[list.size()]);
答案 2 :(得分:3)
您可以使用toArray(T[] a)
方法:
String[] arr = list.toArray(new String[0]);
或者替代:
String[] arr = list.toArray(new String[list.size()]);
两者之间的区别在于后者可能不需要分配新数组。
Effective Java 2nd Edition :第23项:不要在新代码中使用原始类型。
原始类型的使用仅允许作为遗留代码兼容性的让步。强烈建议不要在将通用性引入Java编程语言之后编写的代码中使用原始类型。 未来版本的Java编程语言可能会禁止使用原始类型。
不要养成命名标识符l
的习惯。它看起来很像1
。
答案 3 :(得分:2)
语法有点傻瓜;你必须提供你自己创建的数组作为输入。
String[] array = l.toArray(new String[l.size()]);
答案 4 :(得分:1)
String[] array = new String[l.size()];
l.toArray(array);