1. toArray方法
将ArrayList实例中的所有元素拷贝到一个数组中
如果目标数组的长度小于ArrayList的长度,则根据数组的类型生成一个新的数组并拷贝;
否则就调用System.arraycopy方法复制数据,如果目标数组的长度大于ArrayList的长度,数组中在list后面的第一个位置被赋为null。
    public <T> T[] toArray(T[] a) {
        if (a.length < size)
            // Make a new array of a's runtime type, but my contents:
            return (T[]) Arrays.copyOf(elementData, size, a.getClass());
	System.arraycopy(elementData, 0, a, 0, size);
        if (a.length > size)
            a[size] = null;
        return a;
    }
测试代码:
	ArrayList list = new ArrayList();
	list.add("Disable");
	list.add("the");
	list.add("current");
	list.add("thread");
	String[] array = new String[3];
	//String[] array = new String[4];
	//String[] array = new String[6];
	String[] arrayCopy = (String[])list.toArray(array);
	// when 3: false
	// when 4, 6: true
	System.out.println(arrayCopy == array);
	// when 3, 4: ["Disable", "the", "current", "thread"]
	// when 6: ["Disable", "the", "current", "thread", null, null]
	System.out.println(Arrays.toString(arrayCopy));