List的toArray()和toArray(T[] a)方法比较(白话文,很好理解)

这篇博客对比了List的toArray()和toArray(T[] a)两种方法。toArray()返回安全的Object[]新数组,而toArray(T[] a)则返回指定类型的数组,要求传入参数为list元素类型的父类或本身。当传入数组长度不足时,会创建新数组;若长度足够,会利用System.arraycopy填充。这种做法兼顾效率和内存使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

List的toArray()方法

toArray()方法会返回List中所有元素构成的数组,并且数组类型是Object[]。还要注意一点就是,返回的数组是新生成的一个数组,也就是说,多次运行toArray()方法会获得不同的数组对象,但是这些数组对象中内容一样的。也就是说,toArray()返回的数组是安全的,是深copy出来的新数组,你可以对它进行任意的修改,而不影响原来的数组。List接口的toArray()方法就是直接调用Arrays.copyOf(elementData, size),将list中的元素对象的引用装在一个新的生成数组中。

List的toArray(T[] a)方法

toArray(T[] a)方法使用了泛型参数,可以返回指定类型的数组,但是这个泛型在确定的时候必须是list中元素类型的父类或本身。也就是说这个参数,是你List中元素的类型,返回的时候就返回你传入的这个类型,仅此而已。如:

  String a[] = list.toArray(new String[0]);

传进去的就是一个String 类型的空数组,那么返回的就是String类型的数组。

 

总结

List接口的toArray()方法就是直接调用Arrays.copyOf(elementData, size),将list中的元素对象的引用装在一个新的生成数组中。

List接口的toArray(T[] a)方法会返回你传入的参数类型的数组(该参数必须为list中保存的元素类型的本身或父类)。如上图传入的是String,就返回String类型的数据。

注意:

  1. 如果传入的参数a的长度比list的长度小(参数长度不够用&#
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值