【发布时间】:2016-10-31 07:27:25
【问题描述】:
我有在列表变量中声明的元素,例如:
List<List<String>> textList = new ArrayList<>();
元素添加如:
textList.add(Arrays.asList(p)); //adding elements
我可以输出变量内的元素的唯一方法是使用:
for(List<String> s: textList){
System.out.println(s); }
哪些输出元素是这样的:
[He is a boy.]
[He likes apple.]
[She is a girl.]
现在,我想将它们存储在一个 数组 中,以便输出时元素看起来像这样。
[He is a boy., He likes apple., She is a girl.]
我试过了
String[] textArr = new String[textList.size()];
textArr = textList.toArray(textArr);
for(String s : textArr){
System.out.println(s);}
但我收到一个错误:
Exception in thread "main" java.lang.ArrayStoreException
at java.lang.System.arraycopy(Native Method)
at java.util.Arrays.copyOf(Arrays.java:3213)
at java.util.ArrayList.toArray(ArrayList.java:407)
那么,如何使用正确的方式将列表中的元素转换为数组。谢谢!
【问题讨论】:
-
两个嵌套的 for 循环应该可以解决问题。
-
尝试使用
Google Guava Transform函数。 http://stackoverflow.com/a/20081058/3710490