这两种将集合转换为数组对象的方法的区别

2024-04-09

以下两种将集合转换为数组对象的方法有什么根本区别

 ArrayList<String> iName = new ArrayList<String>();

 String[] array= iName.toArray(new String[iName.size()]);//1
 String[] array= iName.toArray(new String[0]);//2

什么时候应该使用approach-1,什么时候应该使用approach-2?


第一种方法更好,因为您创建了一个数组,并且toArray使用它来存储输入列表的元素。第二种方法的结果是toArray创建另一个数组,因为它不能在空数组中存储任何内容。

如果您向该方法传递一个长度大于输入列表大小的数组,您将遇到不同的行为,因为在这种情况下,size数组的元素(其中size是输入列表的大小)将被分配为空。

将小于列表大小的数组传递给方法唯一有意义的情况是,如果您在调用方法时没有实例化数组,而是使用预先存在的数组:

array = iName.toArray(array);

在这里你事先不知道是否array将足够大以包含以下元素iName。如果不是,toArray将返回一个新数组。如果是,toArray将返回输入数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这两种将集合转换为数组对象的方法的区别 的相关文章

随机推荐

  • 在 SQL Management studio 中更改 CommandTimeout

    如何更改 SQL Management Studio 中的 CommandTimeout 如果您在使用表设计器时遇到超时 请更改工具 gt 选项 gt 设计器 gt 表和数据库设计器下的 事务超时时间 值 这将消除此消息 超时已到 操作完成
  • pandas 六个月的日期范围

    所以 这是我的数据框 PatientNumber QT Answer Answerdate DiagnosisDate 1 1 transferring No 2017 03 03 2018 05 03 2 1 preparing food
  • epoll_wait()接收socket关闭两次(read()/recv()返回0)

    我们有一个使用 epoll 来侦听和处理 http 连接的应用程序 有时 epoll wait 会连续两次收到 fd 上的 close 事件 含义 epoll wait 返回连接 fd 其中 read recv 返回 0 这是一个问题 因为
  • pg (node-postgres) 是否自动清理数据

    我在用node postgres对于生产应用程序 我想知道是否有什么我应该关心的 数据是否自动清理node postgres 我在 github 页面上找不到任何相关信息 https github com brianc node postg
  • BrokeredMessage Azure ServiceBus 的虚假传递和接收

    我创建了一个 BrokeredMessage 实例 并希望围绕它的传递计数与队列的最大传递计数来测试我的代码 我不想建立一个真正的队列来发送和接收消息 但在消息传递之前 deliverycount 属性不会初始化 我怎样才能伪造这个 我设法
  • Ninject:将某物与其自身绑定是什么意思?

    Ninject 具有以下功能self binding like Bind
  • Rollup 函数 - 替换 NULL

    我的 SQL 的最后部分似乎遇到了麻烦 当在我的 SQL 中使用汇总函数实现分组依据时 会出现 NULL 如何修改 NULL 以便在此聚合 SQL 中将其替换为 TOTAL Current table returned Name Activ
  • 在Python中将数据作为后台进程写入磁盘

    我有一个 Python 程序 基本上执行以下操作 for j in xrange 200 1 Compute a bunch of data 2 Write data to disk 1 大约需要2 5分钟2 大约需要 1分钟 请注意 内存
  • 如何在多线程模式下使用 Gunicorn 运行 Flask

    我有用 Flask 编写的网络应用程序 正如大家所建议的 我不能在生产中使用 Flask 所以我想到了枪与烧瓶 在 Flask 应用程序中 我正在加载一些机器学习模型 它们的总大小为 8GB 我的 Web 应用程序的并发性可以达到1000
  • Laravel 中的菜单逻辑应该放在哪里?

    在 Laravel 中放置菜单数据逻辑的最佳概念位置是什么 如果我使用菜单包放在哪里 在Base Controller创建额外的功能或不同的东西 Note 这个答案是为 Laravel 3 编写的 可能适用于最新的 Laravel 4 也可
  • numpy.random.choice 的性能

    我更新了代码和时间 我正在尝试提高代码中函数的性能 我必须生成一个包含随机元素的列表 但是 列表的不同部分必须填充来自不同集合的元素 代码示例如下 我必须生成数百万个这样的列表 一次一个 函数 foo1 是最快的 但它不能满足我的需要 它可
  • 应用程序因“正在发送信号”而终止。但没有例外或其他信息

    我正在开发一个通过蓝牙记录数据的应用程序 但在收集数据数小时后它会间歇性崩溃 使得很难追踪错误 logcat 输出不是很有帮助 https i stack imgur com rDZbB png https i stack imgur co
  • CSRF 和 X-CSRF-Token 的区别

    使用上有什么区别X CSRF Token在 HTTP 标头中或token在隐藏字段中 何时使用隐藏字段 何时使用标头以及为什么 我觉得X CSRF Token是当我使用 JavaScript AJAX 但我不确定时 CSRF 保护有多种方法
  • Android init.rc 服务套接字数据流,“连接被拒绝”

    我正在开发一个使用 tcpdump 获取网络数据的项目 为了简化问题 让我们用我编写的脚本替换 tcpdump system bin sh while do echo print out from socket sleep 1 done 我
  • 在 SQL Server 中计算呼叫的不同资费周期

    对于呼叫评级系统 我试图将电话呼叫持续时间分成不同资费周期的子持续时间 呼叫存储在 SQL Server 数据库中 并具有开始时间和总持续时间 夜间 0000 0800 高峰 0800 1900 和非高峰 1900 235959 时段的费率
  • 将 UITabBarController 与 UINavigationController 结合使用 - Swift 3

    我正在制作一个应用程序 需要使用UITabBarController随着UINavigationController 我在故事板中做了以下流程 看图片 https i stack imgur com aLz0B jpg 现在第一个问题是苹果
  • 为什么我的物理体在 spritekit 中发生几次碰撞后会相互穿过?

    我正在开发一款游戏 其中涉及角色在平台上跳跃 例如涂鸦跳跃游戏 问题是角色在与平台发生几次碰撞后将穿过平台 对于跳跃我使用restitution player physicsbody restitution 1 0我根据加速度计数据对角色的
  • os.system() 返回错误代码 32512 - Python

    我在 Python 2 7 中使用以下系统命令 我能够在终端中成功执行相同的命令 而我无法在 python 中运行它 获取返回代码 32512 该命令基本上将 mp3 文件转换为波形文件以及立体声到单声道的转换 我能够在终端中成功运行相同的
  • Flutter 使用 jitsi_meet flutter 包在 IOS 上生成错误

    我正在尝试创建一个 flutter 应用程序并集成 jitsi meet flutter 包 我按照文档中指示的说明进行操作 我的 flutter 版本和 IOS 通过 flutter doctor Flutter version 2 8
  • 这两种将集合转换为数组对象的方法的区别

    以下两种将集合转换为数组对象的方法有什么根本区别 ArrayList