toArray()方法

集合的toArray()方法返回一个Object数组,它就是Object不是其他类;但是我们如果需要获得对应特定类型的数组时:通常都是在取得数组元素时进行强制类型转换;
因为直接的转换是错的:

List<Integer> list = new ArrayList<>();
Integer[] objects = (Integer[]) list.toArray();

这段代码会报一个这样的异常:

Exception in thread "main" java.lang.ClassCastException: class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Integer;

只能在取得元素时强转;

for (int i = 0; i < list.size(); i++) {
    int key = (int) objects[i];
}

这样是没有问题的;
可以通过遍历整个object数组然后逐个元素进行转型获得想要的数组;
细心的你可能发现java.util.Collection接口下有好几个toArray()方法,那么其他的方法怎么用:

<T> T[]toArray​(T[] a)

a:是用于保存集合所有内容的数组。
对于返回值,如果参数指定的数组能够容纳Set集合的所有内容,就使用该数组保存集合中的所有对象,并返回该数组;否则,返回一个新的能够容纳集合中所有内容的数组。
如果参数指定的数组长度大于集合的大小,那么数组的剩余空间全部复制为null值。

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值