Java toArray(T[]a)和toArray()之间的差异
我一直在学习如何使用java编程,但对于Java toArray(T[]a)和toArray()之间的差异,java,list,toarray,Java,List,Toarray,我一直在学习如何使用java编程,但对于LinkedList的toArray(t[]a)和toArray()方法的区别,我还没有得到任何明确的解释。第二个简单地将LinkedList对象中的所有元素作为数组返回,对吗?但是,第一个呢 编辑: 我是说,我读了oracle的文档,上面说: 返回一个数组,该数组以正确的方式包含此列表中的所有元素 顺序(从第一个元素到最后一个元素);的运行时类型 返回的数组是指定数组的数组如果列表适合 指定的数组,它将在其中返回。否则,将创建一个新数组 使用指定数组的运
LinkedList
的toArray(t[]a)
和toArray()
方法的区别,我还没有得到任何明确的解释。第二个简单地将LinkedList对象中的所有元素作为数组返回,对吗?但是,第一个呢
编辑:
我是说,我读了oracle的文档,上面说:
返回一个数组,该数组以正确的方式包含此列表中的所有元素
顺序(从第一个元素到最后一个元素);的运行时类型
返回的数组是指定数组的数组如果列表适合
指定的数组,它将在其中返回。否则,将创建一个新数组
使用指定数组的运行时类型和
这张单子。如果列表符合指定的阵列,则有剩余空间
(即,数组中的元素多于列表中的元素)
紧跟在列表末尾的数组设置为null。(本
仅当调用方
知道列表不包含任何空元素。)
与toArray()方法一样,此方法充当
基于数组和基于集合的API。此外,该方法允许
精确控制输出数组的运行时类型,并且可能,
在某些情况下,可用于节省分配成本
我不明白粗体显示的句子的意思。有两个区别:
T[]
,而第二个返回Object[]
假设您有一个
列表
,并且希望将其转换为字符串[]
。让我们看看两种方法的工作原理:
List<String> source = new LinkedList<String>();
// Fill in some data
Object[] array1 = source.toArray();
String[] array2 = source.toArray(new String[source.size()]);
List source=newlinkedlist();
//填写一些数据
Object[]array1=source.toArray();
String[]array2=source.toArray(新字符串[source.size()]);
看到区别了吗?第一个只创建一个
对象[]
,因为它不知道类型参数
的类型,而第二个只填充您传递的字符串[]
(这是您想要的)。您几乎总是需要使用第二种方法。使用String[]array3=(String[])source.toArray()怎么样代码>?“我认为这不推荐,但为什么不呢?”我在另一个问题中发现。它可能会提供一些解释。请使用toArray(新字符串[0])。看见