转换List <list <string>&gt; to string [] </list <string>

时间:2013-10-26 09:35:48

标签: java arrays string list

<List<List<string>>转换为字符串数组的最短路径是什么?

我尝试使用foreach循环,但在这种情况下我的数组没有索引,所以我无法填满数组!? : - (

        foreach (List<string> list in myList)
        {
            foreach (string s in list)
            {
                Array[s] = list.ToArray;
            }
        }

6 个答案:

答案 0 :(得分:1)

首先你需要知道数组需要多大(这是因为Java中的数组不能是动态的;不能动态地改变它们的大小):

int max = 0;
for(List<String> list : myList)
{
   max += list.size();
}
String[] array = new String[max];

然后使用你的foreach循环(请注意,它有不同的语法)和一个额外的变量来保持当前索引:

int i = 0;
for(List<string> list : myList)
{
    for(String s : list)
    {
        array[i++] = s;
    }
}

请注意String拼写的方式。

答案 1 :(得分:1)

首先,计算String[]数组的大小。

int size = 0;
for(List list : myList)
{
   size += list.size();
}
String[] array = new String[size];

然后,使用每个列表中的所有字符串来完成数组:

int i = 0;
for (List<String> list : myList) {
    for (String s : list) {
        array[i++] = s;
    }
}

答案 2 :(得分:0)

使用for(int i=0; i<myList.size(); i++){ ... }

答案 3 :(得分:0)

你可以使用这样的东西:

int i=0;
foreach (List<string> list in myList)
        {
            foreach (string s in list)
            {
                Array[i] = s;
                i++;
            }
        }

答案 4 :(得分:0)

List<List<String>> lisfOfList = new ArrayList<List<String>>();

List<String> result = new ArrayList<String>();
for(List<String> list : lisfOfList){
    result.addAll(list);
}

String[] s = result.toArray(new String[result.size()]);

答案 5 :(得分:0)

试试这个,

  

列表与LT;字符串&GT; list1 = new ArrayList&lt; String&gt;();

     

list1.add( “AA”);

     

list1.add( “BB”);

     

列表与LT;字符串&GT; list2 = new ArrayList&lt; String&gt;();

     

list2.add( “CC”);

     

list2.add( “DD”);

     

list2.add( “EE”);

     

列表与LT;列表与LT;字符串&GT;&GT; arrL =新的   的ArrayList&LT;列表与LT;字符串&GT;&GT;();

     

arrL.add(list1的);

     

arrL.add(列表2);

     

列表与LT;字符串&GT; strList = new ArrayList&lt; String&gt;();

     

for(List&lt; String&gt; list:arrL)

     

{strList.addAll(list); }

     

String [] strArray = new String [strList.size()];

     

strList.toArray(strArray);

     

for(String string:strArray)

     

{System.out.println(string); }