我一直在学习如何使用java进行编程,而且我没有对LinkedLists toArray(T[] a)和toArray()方法的区别做出任何明确的解释.第二个只是将LinkedList对象中的所有元素作为数组返回,对吧?但是,第一个怎么样?
编辑:
我的意思是,我从oracle阅读文档,它说:
以适当的顺序返回包含此列表中所有元素的数组(从第一个元素到最后一个元素); 返回数组的运行时类型是指定数组的运行时类型.如果列表适合指定的数组,则返回其中.否则,将使用指定数组的运行时类型和此列表的大小分配新数组.如果列表适合指定的数组,并且空间足够(即,数组的元素多于列表),则紧跟在列表末尾的数组中的元素将设置为null.(仅当调用者知道列表不包含任何null元素时,这在确定列表长度时很有用.)
与toArray()方法一样,此方法充当基于数组的API和基于集合的API之间的桥梁.此外,该方法允许精确控制输出阵列的运行时类型,并且在某些情况下可以用于节省分配成本.
我不明白以粗体显示的句子的含义.
Roh*_*ain 17
假设你有一个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()]);
Run Code Online (Sandbox Code Playgroud)
看到不同?第一个只是创建一个Object[],因为它不知道类型参数的类型<T>,而第二个只是填满String[]你传递的(这是你想要的).您几乎总是需要使用第二种方法.
| 归档时间: |
|
| 查看次数: |
7199 次 |
| 最近记录: |