toArray
函数术语
toArray(),JAVA函数,当使用ArrayList时,有时想获得一个实际的数组,这个数组包含了列表的内容。可以通过调用方法toArray()来实现。
函数用法
当使用ArrayList时,有时想获得一个实际的数组,这个数组包含了列表的内容。
可以通过调用方法toArray()来实现。
示例:
运行结果:
al中元素:[1, 2, 3, 4, 5]
1
2
3
4
5
List提供了toArray()的方法,但是要使用不好,就会有ClassCastException异常究竟这个是如何产生的,且看代码:
首先咱们来看看下面的代码:
执行上面这几行代码 会有ClassCastException异常
咱们再来看下面几行代码:
执行上面的代码就完全OK了
会抛java.lang.ClassCastException。
下面是ArrayList的两个toArray()方法的源代码
可以看出,不带参数的toArray()方法,是构造的一个Object数组,然后进行数据copy,此时进行转型就会产生ClassCastException
而带参数的toArray(T[] a) 方法,则是根据参数数组的类型,构造了一个对应类型的,长度跟ArrayList的size一致的空数组,虽然方法本身还是以 Object 数组的形式返回结果,不过由于构造数组使用的ComponentType跟需要转型的ComponentType一致,就不会产生转型异常
正确的方式
这里要注意的是:你要是传入的参数为9个大小,而list里面有5个 object ,那么其他的四个会是 null , 使用的时候要注意。
参考资料
最新修订时间:2024-01-22 20:14
目录
概述
参考资料