在我的工作中,我得到了以下源代码:
import java.util.ArrayList;
import java.util.List;
public class Temporaer
{
public static void main(String[] args)
{
List stringArrayList = new java.util.ArrayList();
stringArrayList.add(fillStringArrayElement("a", "b"));
stringArrayList.add(fillStringArrayElement("c", "d"));
String[] listElement;
/*
* I'm stuck here, because I don't know what I have to do
*/
System.out.println(listElement.length);
}
//Just a method to fill a list easily
private static String[] fillStringArrayElement (String firstElem, String secondElem)
{
String[] stringArrayListElement = new String[2];
stringArrayListElement[0] = firstElem;
stringArrayListElement[1] = secondElem;
return stringArrayListElement;
}
}
我的目标是提取每个列表项并使用它们。
我尝试使用上面提到的toArray[T[])
方法here。虽然它生成java.lang.ArrayStoreException
。 注意:我无法更改列表的类型,因为列表由extern服务填充。也许我必须首先转换列表...
有人能告诉我一个实现目标的方法吗?谢谢你提前。
答案 0 :(得分:2)
Iterator
是interface
用于iterate
的{{1}} Collection
个ArrayList
或其他Collection
框架类。
在阅读ArrayList
之前,请确保使用size()
方法提供值。
这是一个针对您的问题的示例工作代码段。
String [] myArray ;
if (stringArrayList.size()>0){
Iterator<String [] > i = stringArrayList.iterator();
while(i.hasNext()){
myArray = i.next();
for(String s : myArray)
System.out.println(s);
}
}
}
请勿使用Raw ArrayList
,而是使用Generics
答案 1 :(得分:1)
使用此:
List<String[]> stringArrayList = new java.util.ArrayList<String[]>();
stringArrayList.add(new String[]{"a", "b"});
stringArrayList.add(new String[]{"c", "d"});
//if you cant to convert the stringArrayList to an array:
String[][] listElement = stringArrayList.toArray(new String[0][]);
for (String[] inArr : listElement){
for (String e : inArr){
System.out.print(e + " ");
}
System.out.println();
}
答案 2 :(得分:0)
String[] listElement;
以上陈述不正确,因为您将arrays
保留在list
,以便listElement
必须包含String[]
String [][] listElement
如下所示。
listElement=stringArrayList.toArray(new String[stringArrayList.size()][]);