collection.toArray(new String[0])中new String[0]的作用

collection.toArray(new String[0])中new String[0]的作用collection.toArray(newString[0])中newString[0]的作用转载2016年02月19日14:35:163372newstring[0]的作用比如:String[]result=set.toArray(newString[0]);Collection的公有方法中,toArray()是比较重要的一个。但是使用无参数的toArr…

大家好,又见面了,我是你们的朋友全栈君。

collection.toArray(new String[0])中new String[0]的作用
转载 2016年02月19日 14:35:16 3372
new string[0]的作用

比如:String[] result = set.toArray(new String[0]);

Collection的公有方法中,toArray()是比较重要的一个。
但是使用无参数的toArray()有一个缺点,就是转换后的数组类型是Object[]。 虽然Object数组也不是不能用,但当你真的想用一个具体类型的数组,比如String[]时,问题就来了。而把Object[]给cast成String[]还是很麻烦的,需要用到这个:

String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);

不管是从哪方面看还是一开始就弄成String[]比较好。

具体怎么办呢?其实用带参数的toArray就好了。官方是这样给出的例子:
String[] a = c.toArray(new String[0]);

如果指定的数组能容纳该 collection,则返回包含此 collection 元素的数组。否则,将根据指定数组的运行时类型和此 collection 的大小分配一个新数组。这里给的参数的数组长度是0,因此就会返回包含此 collection 中所有元素的数组,并且返回数组的类型与指定数组的运行时类型相同。

像 toArray 方法一样,此方法充当了基于数组的 API 与基于 collection 的 API 之间的桥梁。更进一步说,此方法允许在输出数组的运行时类型上进行精确控制,并且在某些情况下,可以用来节省分配开销。

假定 l 是只包含字符串的一个已知 List。以下代码用来将该列表转储到一个新分配的 String 数组:

 String[] x = (String[]) v.toArray(new String[0]);

注意,toArray(new Object[0]) 和 toArray() 在功能上是相同的。

参数:
a – 存储此 collection 元素的数组(如果其足够大);否则,将为此分配一个具有相同运行时类型的新数组。

Collection Interface Array Operations
The toArray methods are provided as a bridge between collections and older APIs that expect arrays on input. The array operations allow the contents of a Collection to be translated into an array. The simple form with no arguments creates a new array of Object. The more complex form allows the caller to provide an array or to choose the runtime type of the output array.

For example, suppose that c is a Collection. The following snippet dumps the contents of c into a newly allocated array of Object whose length is identical to the number of elements in c.

Object[] a = c.toArray();
Suppose that c is known to contain only strings (perhaps because c is of type Collection). The following snippet dumps the contents of c into a newly allocated array of String whose length is identical to the number of elements in c.

String[] a = c.toArray(new String[0]);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146664.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月14日 下午6:20
下一篇 2022年5月14日 下午6:20


相关推荐

  • Hints详解

    Hints详解在向大家详细介绍 OracleHints 之前 首先让大家了解下 OracleHints 是什么 然后全面介绍 OracleHints 希望对大家有用 基于代价的优化器是很聪明的 在绝大多数情况下它会选择正确的优化器 减轻了 DBA 的负担 但有时它也聪明反被聪明误 选择了很差的执行计划 使某个语句的执行变得奇慢无比 此时就需要 DBA 进行人为的干预 告诉优化器使用我们指定的存取路径或连接类型生成执行计划 从

    2026年3月19日
    2
  • Intellij热部署插件JRebel

    Intellij热部署插件JRebelIntellij热部署插件JRebel安装JRebel激活JRebel相关设置Intellij热部署插件JRebel项目需求,一直用eclipse的我,也要改用IDEA了,一开始,很不习惯。经过几天的慢慢摸索和习惯之后,发现IDEA确实很好用。dark的界面是我喜欢的,智能的提示也让写代码不再枯燥。遗憾的是IDEA本身没有集成热部署工具,一开始改动代码之后,都需要重新r…

    2022年5月22日
    37
  • pix是什么意思(pixio)

    本文会介绍cGAN和pix2pix,并在TensorFlow中使用pix2pix模型。一、cGAN原理使用GAN可以无监督生成全新的图片,比如使用GAN生成MNIST数字,虽然可以生成数字,但是不能生成确定的数字。如果希望控制生成的结果,例如生成数字1,此时就要用到cGAN了。cGAN的全称为ConditionalGenerativeAdversarialNet…

    2022年4月12日
    84
  • 【n8n教程】:n8n CLI 命令行工具

    【n8n教程】:n8n CLI 命令行工具

    2026年3月15日
    3
  • OpenTracing 详解

    OpenTracing 详解OpenTracing 于 2016 年 10 月加入 CNCF 基金会 是继 Kubernetes 和 Prometheus 之后 第三个加入 CNCF 的开源项目 它是一个中立的 厂商无关 平台无关 分布式追踪的 API 规范 提供统一接口 可方便开发者在自己的服务中集成一种或多种分布式追踪的实现 本文讲一讲 OpenTracing 的来龙去脉 以及在容器化和微服务盛行的今天 为什么分布式追踪显得格外有用 DistributedT 什么是 Tracing 图片来源 Metrics t

    2026年3月16日
    2
  • SendMessage函数

    SendMessage函数首先我们了解一下 Windows 的消息机制 Windows 是一个消息驱动式系统 Windows 消息提供应用程序与应用程序之间 应用程序与 Windows 系统之间进行通信的手段 举个例子 打开记事本程序 该程序有一个 文件 菜单 那么 在运行该程序的时候 如果用户单击 文件菜单

    2026年3月19日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号