ToArrayCollection

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);
    }

}

你可能感兴趣的:(ToArrayCollection)