当前位置: 首页 > 知识库问答 >
问题:

toArray(T[]a)和toArray()之间的区别

景鸿才
2023-03-14

我一直在学习如何使用java编程,但我还没有明确解释LinkedListtoArray(T[]a)toArray()方法的区别。第二个只是将LinkedList对象中的所有元素作为数组返回,对吗?但是,第一个呢?

编辑:

我的意思是,我从甲骨文中阅读了文档,它说:

返回一个数组,其中包含此列表中所有元素的正确顺序(从第一个元素到最后一个元素);返回数组的运行时类型是指定数组的运行时类型。如果列表适合指定的数组,则返回该数组。否则,将使用指定数组的运行时类型和此列表的大小分配一个新数组。如果列表适合具有备用空间的指定数组(即,数组的元素数多于列表),则紧跟在列表末尾之后的数组中的元素将设置为 null。(仅当调用方知道列表不包含任何空元素时,这在确定列表的长度时才有用。

与 toArray() 方法一样,此方法充当基于数组的 API 和基于集合的 API 之间的桥梁。此外,此方法允许精确控制输出数组的运行时类型,并且在某些情况下可用于节省分配成本。

我不明白粗体显示的句子的意思。

共有2个答案

柴文林
2023-03-14

有两个区别:

  1. 第一个返回T[],而第二个返回Object[]
  2. 第一个接受一个数组作为参数,如果这个数组足够大,它会使用这个数组来存储Collection的元素,而不是创建一个新元素。
海嘉赐
2023-03-14

假设你有一个列表

List<String> source = new LinkedList<String>();
// Fill in some data

Object[] array1 = source.toArray();
String[] array2 = source.toArray(new String[source.size()]);

看到区别了吗?第一个简单地创建了一个Object[],因为它不知道类型参数的类型

 类似资料:
  • 问题内容: 我只是在查看List接口中定义的方法: 返回以正确顺序包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。如果列表适合指定的数组,则将其返回。否则,将使用指定数组的运行时类型和此列表的大小分配一个新数组。如果列表适合指定的数组并有剩余空间(即,数组中的元素多于列表),则紧接集合结束后的数组中的元素设置为null。仅当调用者知道列表不包含任何null元素时,这才对确定

  • 问题内容: 我只是在查看List接口中定义的方法: ,我有一个问题。为什么是通用的?因此,方法不是完全类型安全的。以下代码片段可编译但会导致: 在我看来,如果toArray不是通用的并且采用List类型参数,那会更好。 我已经写了玩具示例,没有通用就可以了: 有什么理由可以这样声明? 问题答案: 从javadocs: 与toArray()方法一样,此方法充当基于数组的API和基于集合的API之间的

  • 我有一些包含这个hashmap的代码(为了简化,我删除了除5对之外的所有代码): 我试图提取的颜色,使一个单一的数组与他们都与这条线: 但Processing(3.5.4)IDE拒绝接受这一点,并用,尽管其正字法与我在网上找到的几个资源相同。我该怎么做?

  • Creates an array from the key/value pairs in this sequence. Signature ObjectLikeSequence.toArray = function() { /*...*/ } ObjectLikeSequence.toArray = function toArray() { return this.pairs().toArra

  • Creates an array snapshot of a sequence. Note that for indefinite sequences, this method may raise an exception or (worse) cause the environment to hang. Signature Sequence.toArray = function() { /*..

  • 问题内容: 这些方法之间有什么区别: 我一直在使用它们,但是每个函数都给出不同的结果,有时我需要在末尾添加,因为我的函数期望使用数组。其他方法也不会产生数组吗? 问题答案: 接受一个I​​D并返回一个模型。如果不存在匹配的模型,则返回。 接受一个I​​D并返回一个模型。如果不存在匹配的模型,则会引发错误1。 返回在数据库中找到的第一条记录。如果不存在匹配的模型,则返回。 返回在数据库中找到的第一条