我一直在学习如何使用Java进行编程,但是我没有得到关于LinkedList的toArray(T[] a)和toArray()方法之间区别的明确解释。第二个方法只是将LinkedList对象中的所有元素作为数组返回,对吗?但是,第一个方法呢?
编辑:
我的意思是,我阅读了来自Oracle的文档,它说:
返回一个包含此列表中所有元素的数组,按正确顺序排列(从第一个元素到最后一个元素);返回的数组的运行时类型是指定数组的类型。如果列表适合指定的数组,则返回其中。否则,将使用指定数组的运行时类型分配新数组,并将其大小设置为此列表的大小。如果列表适合具有剩余空间的指定数组(即,数组具有比列表更多的元素),则在列表结束后紧接着该数组中的元素将设置为null。(仅当调用者知道列表不包含任何null元素时,这对于确定列表的长度非常有用。)
像toArray()方法一样,此方法充当基于数组和基于集合的API之间的桥梁。此外,此方法允许精确控制输出数组的运行时类型,并且在某些情况下可用于节省分配成本。
我不理解显示为粗体的句子的含义。
编辑:
我的意思是,我阅读了来自Oracle的文档,它说:
返回一个包含此列表中所有元素的数组,按正确顺序排列(从第一个元素到最后一个元素);返回的数组的运行时类型是指定数组的类型。如果列表适合指定的数组,则返回其中。否则,将使用指定数组的运行时类型分配新数组,并将其大小设置为此列表的大小。如果列表适合具有剩余空间的指定数组(即,数组具有比列表更多的元素),则在列表结束后紧接着该数组中的元素将设置为null。(仅当调用者知道列表不包含任何null元素时,这对于确定列表的长度非常有用。)
像toArray()方法一样,此方法充当基于数组和基于集合的API之间的桥梁。此外,此方法允许精确控制输出数组的运行时类型,并且在某些情况下可用于节省分配成本。
我不理解显示为粗体的句子的含义。
String[] array3 = (String[]) source.toArray();
怎么样?我猜这不被推荐,但为什么呢? - jamsandwich