List类存放数组类型的问题!
import java.util.*;public class Test
{
public static void main(String[] args)
{
String [] a={"5","2","3","4"};
System.out.println("The length of String[] a is "+a.length);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
List<String> lst=Arrays.asList(a);
for(int i=0;i<lst.size();i++){
System.out.println(lst.get(i));
}
}
}
上述程序编译和运行都没有问题,功能是将string数组中各个string作为单个项放入List并访问;
但是,如果我想把string数组作为一个整体,作为一项放入List,即List每项都是string数组,而不是单个string,那么我是不是应该把程序改为:
......
List<String []> lst=Arrays.asList(a);
......
这时编译报错,说是找到的a是个string,但泛型要求是string [],奇怪!我的a明明定义为一个string[],怎么会是个string?
更奇怪的是,如果我定义int [] a={1,2,3,4},List创建时写:List<int []> lst=Arrays.asList(a)就完全没问题。程序如下:
import java.util.*;
public class Test
{
public static void main(String[] args)
{
int [] a={1,2,3,4,5};
System.out.println("The length of String[] a is "+a.length);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
List<int []> lst=Arrays.asList(a);
for(int i=0;i<lst.get(0).length;i++){
System.out.println(lst.get(0)[i]);
}
}
}
这是怎么回事?
[此贴子已经被作者于2007-10-11 13:03:17编辑过]