我有一个
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对象都将以字符串数组格式返回。
UPDATE:由于您希望它是一个平面数组,您需要(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();
}
}
String header =" ";
for(字符串头:arg)}