簡體   English   中英

轉換清單 <ArrayList> 到字符串[]

[英]Converting List<ArrayList> to String[]

我有一個

List<ArrayList> arg = new ArrayList<ArrayList>();

[[logo], [cd_branche], [lib_branche]],

(other arguments not relevant) 

[[1111,22222,3333]],[[2222,324,432]]...

我想將其轉換為String [],所以我做到了

    Object[] obj = arg.toArray();
    String[] headers =new String[obj.length];

    for(int i=0;i<headers.length;i++) { 
        headers[i]= (String) obj[i]; 
        }

但我越來越

java.util.ArrayList cannot be cast to java.lang.String

我正在尋找的輸出是

headers[0]=logo
headers[1]=cd_branche
headers[2]=lib_branche

使用Java 6

聽起來好像您希望它是一個字符串數組(即"[["logo", "cd_branche", "lib_cranche"],[..],[..],[1111,22222,3333],[2222,324,432]" )。

在這種情況下,只需執行以下操作:

Object[] obj = arg.toArray();
String[] headers =new String[obj.length];
for(int i=0;i<headers.length;i++) { 
    headers[i]= Arrays.toString(obj);
}

並且obj每個ArrayList對象都將以字符串數組格式返回。


更新:由於您希望將其作為平面數組,因此需要(a)計算所需數組的大小,以及(b)通過兩個循環遍歷對象,並進行如下深度搜索:

int size = 0;
for (int i = 0; i < arg.size(); size += arg.get(i++).size());

String[] headers =new String[size];
for(int count = 0, i=0;i<arg.size();i++) {
    for (int j=0; j< arg.get(i).size(); j++) {
        headers[count++]= arg.get(i).get(j).toString();
    }
}               

字符串標題=“”;
for(String header:arg){headers + = header;}

暫無
暫無

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

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