0

在我的工作中,我有以下源代码:

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

有人可以告诉我实现目标的方法吗?提前致谢。

4

3 回答 3

2

Iterator是一个interface在 java 中用于iterate覆盖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

于 2013-05-30T09:54:58.337 回答
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();
    }
于 2013-05-30T09:58:30.410 回答
0
String[] listElement;

上面的陈述是不正确arrays的,因为你要保留list所以你listElement 必须包含String[].

String [][] listElement

像下面的东西。

listElement=stringArrayList.toArray(new String[stringArrayList.size()][]);
于 2013-05-30T09:59:10.880 回答