我一直在学习如何用java编程,对于LinkedList的toArray(T[] a)方法和toArray()方法的区别,我还没有得到任何明确的解释。第二个方法只是将LinkedList对象中的所有元素作为数组返回,对吗?但是第一个呢?
编辑:
我是说,我读过甲骨文的文件,上面写着:
返回包含此列表中所有元素的数组(从第一个元素到最后一个元素);返回数组的运行时类型是指定数组的运行时类型。如果列表适合指定的数组,则在其中返回。否则,将使用指定数组的运行时类型和此列表的大小分配一个新数组。如果列表适合于指定的数组,并留有空间(也就是说,数组中的元素比列表多),则在列表结束后的数组中的元素设置为null。(只有在调用方知道列表不包含任何空元素时,这才有助于确定列表的长度。)。 与toArray()方法一样,该方法充当基于数组和基于集合的API之间的桥梁。此外,该方法允许对输出数组的运行时类型进行精确控制,并且在某些情况下可用于节省分配成本。
我不明白用黑体字显示的句子的意思。
发布于 2015-02-08 10:07:27
假设您有一个List<String>,并且希望将它转换为String[]。让我们看看两种方法的工作原理:
List<String> source = new LinkedList<String>();
// Fill in some data
Object[] array1 = source.toArray();
String[] array2 = source.toArray(new String[source.size()]);看到区别了吗?第一个简单地创建一个Object[],因为它不知道类型参数<T>的类型,而第二个只填充您传递的String[] (这正是您想要的)。你几乎总是需要使用第二种方法。
发布于 2015-02-08 10:06:22
有两个不同之处:
T[],第二个返回Object[]https://stackoverflow.com/questions/28392705
复制相似问题