站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题ArrayList-lt;String[]-gt;如何导出为String[][]?

ArrayList-lt;String[]-gt;如何导出为String[][]?

摘要: ArrayList-lt;String[]-gt;如何导出为String[][]?


import java.util.ArrayList;
public class atry {
public static void main(String[] args) {
ArrayList-#60;String[]-#62; b=new ArrayList-#60;String[]-#62;();
String[] a=new String[3];
a[0]=-#34;a0-#34;;a[1]=-#34;a1-#34;;a[2]=-#34;a2-#34;;
b.add(a);
a[0]=-#34;b0-#34;;a[1]=-#34;b1-#34;;a[2]=-#34;b2-#34;;
b.add(a);
String c[][];
c=b.toArray();
}
}
编译报错为:
atry.java:11: 不兼容的类型
找到:java.lang.Object[]
需要:java.lang.String[][]
c=b.toArray();
^
1 错误

请问,ArrayList-#60;String[]-#62;如何导出为String[][]?


c[]=(String[])b.toArray();
试试


c[]=(String[])b.toArray(); 也试过,不行
提示为:
atry.java:11: 不是语句
c[]=(String[])b.toArray();
^
atry.java:11: 需要-#39;;-#39;
c[]=(String[])b.toArray();
^
2 错误


c=(String[][])b.toArray();

试一下


toArray();返回 T[]类型,

你的ArrayList的模板参数T是String[]
.

返回当然是String[][],是正确的。


package test;

import java.util.ArrayList;

public class StringTest {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList-#60;String[]-#62; list = new ArrayList-#60;String[]-#62;();
String[] a = { -#34;aa-#34;, -#34;bb-#34;, -#34;cc-#34;, -#34;dd-#34; };
String[] b = { -#34;11-#34;, -#34;22-#34;, -#34;33-#34;, -#34;44-#34; };
list.add(a);
list.add(b);

String[][] c = new String[list.size()][];

list.toArray(c);

for (int i = 0; i -#60; c.length; i++) {
for (int j = 0; j -#60; c[i].length; j++) {
System.out.println(c[i][j]);
}
}
}

}
结果:
aa
bb
cc
dd
11
22
33
44



The type ArrayList is not generic; it cannot be parameterized with arguments -#60;String[]-#62;Syntax error, parameterized types are only available if source level is 5.0
为什么我编译出这么个错误啊?
用楼上的代码编译的


jdk版本?


JDK 1.5.08


不知道为啥。。我的是1.5.0_02


谢谢大家的热心帮助,Areslp(努力ING)的答案显然正确.
String[][] c = new String[list.size()][];这句的确在关键了!


汗...没用过JDK1.5


↑返回目录
前一篇: 一个签过名的JAR文件,解包基中一个文件,反编译,重新更新包,执行时报:SHA1 digest error
后一篇: 在win2003下怎样运行azureus