package collectionDemo;
import java.util.ArrayList;
/**
*
* @author q06285:
* @version 创建时间:2019年9月25日 下午4:40:47
*
*/
public class ToArrayCollection {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList heros = new ArrayList();
// 初始化5个对象
for (int i = 0; i < 5; i++) {
heros.add(new Hero("hero " + i));
}
Hero specialHero = new Hero("special hero");
heros.add(specialHero);
System.out.println(heros);
//使用匿名数组做参数
//也可以如下:
//因为toArray(T[] a)源码是
// a.length小于list.size()才会生成一个新数组并返回
// a.length 大于等于list.size()会直接将list元素拷贝到a数组,
// 同时,如果a.length 大于list.size() 会将a[size]
// 即 原list元素之后的一个索引位置赋值为null
Hero hs [] = new Hero[heros.size()];
System.out.println(hs);
heros.toArray(hs);
for (Hero h : hs) {
System.out.println(h+" ");
}
// Hero [] hs1 = new Hero[1] ;
// hs1[0] = null;
// System.out.println(hs1[0]);
//本来源码是不用强转的,但是该list heros 这个ArrayList在声明时
// 没有指定类型,即是 object类型的list,所以返回的是Object类型的数组,
// 需要强转为Hero类型
//
// Hero hs[] = (Hero[])heros.toArray(new Hero[]{});
System.out.println("数组:" +hs);
}
}