簡體   English   中英

轉換清單 <List<String> &gt;轉換為字符串[]

[英]Convert List<List<String>> to String[]

我有一個要求,我應該編寫一個String[]類型的方法並返回相同的方法。但是我擁有的實現使用並返回List<List<String>> 。此外, List<List<String>>可以獲取並返回直接從數據庫添加值並將其直接添加到String[]之前,尚不知道這些值。列表的大小也很大,無法容納在String[] 如何完成此轉換。

這應該很好。 盡管如果您可以返回嵌入式列表結構,那會更好:

final List<String> resultList = new ArrayList<String>(64000);
final List<List<String>> mainList = yourFuncWhichReturnsEmbeddedLists();
for(final List<String> subList: mainList) {
    resultList.addAll(subList);
}

final String[] resultArr = subList.toArray(new String[0]);

看一下這段代碼:

public static String[] myMethod(ArrayList<ArrayList<String>> list) 
{
    int dim1 = list.size(); 
    int total=0;
    for(int i=0; i< dim1; i++)
        total += list.get(i).size();

    String[] result = new String[total];        

    int index = 0;
    for(int i=0; i<dim1; i++)
    {
        int dim2 = list.get(i).size();
        for(int j=0; j<dim2; j++)
        {
            result[index] = list.get(i).get(j);
            index++;
        }
    }

    return result;
}

運行以下測試代碼:

public static void main(String[] args)
    {
        ArrayList<String> list1 = new ArrayList<String>();
        ArrayList<String> list2 = new ArrayList<String>();
        ArrayList<String> list3 = new ArrayList<String>();

        list1.add("first of first");
        list1.add("second of first");
        list1.add("third of first");

        list2.add("first of second");

        list3.add("first of third");
        list3.add("second of third");

        ArrayList<ArrayList<String>> superList = new ArrayList<ArrayList<String>>();
        superList.add(list1);
        superList.add(list2);
        superList.add(list3);

        String[] output = myMethod(superList);

        for(int i=0; i<output.length; i++)
            System.out.println(output[i]);                  
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM