读书人

java 器皿

发布时间: 2012-12-24 10:43:13 作者: rapoo

java 容器
java中 List类及其子类转换成数组

e.g. List中盛放 SomeClass 对象
两个方法
1. toArray() 返回 Object[],无法强制转换成 SomeClass[],Object[]和SomeClass[]均是Object子类,想要转换,就必须对SomeClass[]中每个元素依次转换
Object[] o= new Object[2];
o[0]= "1 ";
o[1]= "2 ";
String[] ss = new String[2];
ss[0] = (String)o[0];
ss[1] = (String)o[1];

2. SomeClass[] sc = null;
sc = List.toArray(new SomeClass[List.size()]);
含义,先创建一个大小为List容量的SomeClass[],通过toArray(),将里面的对象全部复制到SomeClass[]中,然后用sc指向这个新创建的SomeClass[]
根据java源码
public Object[] toArray(Object a[]){
if(a.length < size)
a = (Object[])java.lang.reflect.Array.newInstance(
a.getClass().getComponentType(), size);
System.arraycopy(elementData,0,a, 0, size);
if(a.length > size)
a[size] = null;
return a;
}

如果看api仍然看不懂,建议看源码,自己学习分析,不要动不动就要google,先自己分析,再来求教他人。

读书人网 >编程

热点推荐