public class Test
{
public static void main(String[] args)
{
String[] strs = new String[] {"aaaaaaa", "b", "c", "d"};
List<String> list=new ArrayList<String>();
for(String str:strs){
list.add(str);
}
list.add("e");
//String[] strArray = new String[list.size()];
//list转换为数组
String[] strArray1 = (String[])list.toArray(new String[list.size()]);
System.out.println(strArray1);
//数组转换为list
List<String> list1 = Arrays.asList(strArray1);
System.out.println(list1);
}
}
记住集合List转换为数组是这样的:
String[] strArray1 = (String[])list.toArray(new String[list.size()]);
如果写成:String[] strArray1 = (String[])list.toArray();将会报不能将object类型转换为String类型的。
这里有个奇怪的现象:
int[] ints = {1, 3, 2, 5, 6};
System.out.println(ints);
System.out.println(Arrays.asList(ints));
输出的结果:
[I@de6ced
[[I@de6ced]这里没有像上面字符串的数组那样打印出里面的值来。
这是因为jdk1.4里面Arrays.asList(Object[] objs),String[]数组,这里的String是一个Object类型的,所以被转换为LIst了,而int(其他基本类型也是如此,char,float……)不是一个Object类型的,所以采用jdk1.5里面的asList(T... a),将int[]做一个参数传入进去了。