[英]Extract String[] elements from a list
在我的工作中,我有以下源代码:
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[])
方法。 虽然会生成java.lang.ArrayStoreException
。 注意:由于列表是由外部服务填充的,因此我无法更改列表的类型。 也许我必须先转换列表...
有人可以告诉我达到目标的方法吗? 提前致谢。
Iterator
是Java中的一个interface
,用于iterate
ArrayList
类的Collection
或其他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
用这个:
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();
}
String[] listElement;
上面的语句是不正确的,因为您将arrays
保留在list
因此listElement
必须包含String[]
。
String [][] listElement
像下面这样。
listElement=stringArrayList.toArray(new String[stringArrayList.size()][]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.