簡體   English   中英

從列表中提取String []元素

[英]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.

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