为什么要费心使用 ArrayList(intcapacity) 呢?

2023-12-25

因此,几乎每个与 ArrayList 容量相关的问题都是如何使用它或(奇怪地)访问它,我对这些信息非常熟悉。我感兴趣的是,如果您碰巧知道或粗略地知道 ArrayList 中有多少项,是否真的值得使用设置容量的 ArrayList 构造函数?

是否有任何全面的基准比较仅使用向 ArrayList 添加元素与预先设置 ArrayList 的容量所需的时间?


显然,对于任何特定的应用程序,您都必须测试任何性能调整,以确定它们是否实际上是优化(以及它们是否实际上是必要的),但有时显式设置容量可能是值得的。例如:

  • 您正在创建大量的数组列表,其中大部分都非常小。在这种情况下,您可能希望将初始容量设置得非常低,和/或在填充给定数组后修剪容量。 (在这种情况下,优化与其说是速度问题,不如说是内存使用问题。但请注意,列表本身有内存开销,它包含的数组也是如此,因此在这种情况下,最好重新设计一种减少列表的方法。)
  • 您正在创建一个数组列表very已知尺寸较大,并且您需要时间添加each元素非常小(也许是因为每次添加元素时,都必须向外部数据源发送一些响应)。 (默认几何增长需要摊销的恒定时间:每隔一段时间,就会产生巨大的惩罚,因此整体平均性能完全没问题,但如果您关心单独进行的单个插入,那可能还不够好。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么要费心使用 ArrayList(intcapacity) 呢? 的相关文章

随机推荐

  • MacOS 上的 Tensorflow:您的 CPU 支持此 TensorFlow 二进制文件未编译为使用的指令:AVX2 FMA

    我尝试使用这些说明验证我的 mac 的张量流https www tensorflow org install install mac ValidateYourInstallation https www tensorflow org ins
  • 通过 JNI 接口共享输出流

    我正在编写一个通过 JNI 接口使用 C 库的 Java 应用程序 C 库创建类型的对象Foo 它们通过 JNI 适当地传递到 Java 假设库有一个输出函数 void Foo print std ostream os 我有一个JavaOu
  • 在 MSSQL 2000 中如何确定某列是否为标识列?

    我想在代码中执行此操作 而不是使用 ALT F1 您也可以这样做 select columnproperty object id mytable mycolumn IsIdentity 如果是恒等则返回 1 否则返回 0
  • 如何在随后打印的质因数之间添加“x”,而不在最后打印的质因数之后有额外的“x”?

    我正在编写质因数分解代码 并且尝试在用户输入的数字的每个显示的质因数之间打印 x 但是 我似乎不知道如何做到这一点 以便在最后显示的素因数之后不会出现额外的 x 我尝试过在 print 语句中的 x 之后连接 mod 并且尝试考虑使用 If
  • 内容提供程序错误:绑定或列索引超出范围:句柄 0x234590

    我已经实现了一个内容提供程序 它导致以下错误 04 25 00 25 16 856 E AndroidRuntime 520 引起 android database sqlite SQLiteException 绑定或列索引超出范围 句柄0
  • 在 mysql db 和 PHP 中 x 分钟后删除整行

    我正在尝试设置一个 sql 数据库 用户必须在其中确认他们的电子邮件地址 我想知道是否有一种方法可以自动删除 sql 数据库中尝试注册 提交其信息 但在 x 分钟后未确认其电子邮件地址的用户 我编写的脚本将其信息直接插入数据库 然后在用户确
  • 以实体的形式显示不相关记录的网格

    我有 3 个 CRM 实体 A B 和 C A 和 B 之间存在 1 N 关系 我有一个自定义活动 D B 和 D 之间存在 1 N 关系 在创建 D 实例时 它的 Regarding 字段设置为 C 实例 C 与 A 或 B 没有任何直接
  • 混淆 Xamarin 应用程序

    是否可以提取 Xamarin Android 应用程序的代码并进行检查 我正处于一个应用程序的最后阶段 该应用程序很快就会在 Play 商店上发布 但是 我担心代码是否可以被其他人提取并查看 请告知如何保护我的应用程序不被其他人查看其代码
  • jqGrid 与 AngularJS

    我一直在寻找如何将 jqGrid 与 AngularJS 结合使用的好例子 我知道 ngGrid 和其他 AngularJS 支持的网格控件 但不幸的是我有一个基于 jqGrid 的整体主题 我最近开始使用 Angular 所以请原谅我的新
  • 自定义 Inno Setup 卸载页面(不是 MsgBox)

    我需要在安装过程中询问用户密码 然后将其用作安装后运行的命令的一部分 我正在使用自定义页面来执行此操作 并且效果很好 我还需要在卸载过程中问同样的问题 该问题用作卸载后运行的命令的一部分 我检查了帮助 似乎没有用于卸载的 PageID 我可
  • 如何在服务器发送的 js 文件到达浏览器之前对其进行编辑?

    在正常的浏览会话期间 我想在浏览器接收之前编辑特定的 JavaScript 文件 因为一旦到达那里就无法编辑 有没有这方面的工具 对于我需要的东西 我不能只是将其保存并在磁盘上进行编辑 我准备好学习如何自己编程 但如果有人能或多或少地指出我
  • 在 PHP 中使用 AES 加密时,应该在哪里存储密钥?

    我正在我的网络应用程序中实现 AES 256 位加密 http www utoxin name 2009 07 automatic db field encryption in cakephp http www utoxin name 20
  • 从 MVC3 升级到 MVC4 后出现“元素未关闭”错误

    Razor 2 随 MVC4 一起提供 似乎并不完全向后兼容 Razor 1 来自 MVC3 自从升级后 我发现一个错误 The 电子邮件受保护 cdn cgi l email protection count 元素未关闭 所有元素必须是自
  • 如何设置 url 帮助器方法参数的默认值?

    我使用语言代码作为前缀 例如www mydomain com en posts 1 这就是我在routes rb中所做的 scope lang do resources posts end 现在我可以轻松使用 url 助手 例如 post
  • Twitter API 和 Rest 调用的身份验证

    我一直在使用 FB api 进行一些简单的演示 并且身份验证一切都非常简单 现在我必须对 twitter v1 1 做类似的事情 但有一些东西我真的不明白 例子 我想做这个请求 https api twitter com 1 1 searc
  • Specflow 如何处理多个参数?

    正如标题所说 specflow如何处理this https stackoverflow com questions 1996426 pass multiple optional parameters to a c sharp functio
  • GCC 汇编优化 - 为什么它们是等价的?

    我正在尝试在初级水平上学习汇编是如何工作的 所以我一直在玩 Sgcc 编译的输出 我编写了一个简单的程序 它定义两个字节并返回它们的总和 整个程序如下 int main void char A 5 char B 10 return A B
  • Java Clip 类中的 Drain 方法

    我正在创建一个短片 然后播放它 调用start 方法 然后我打电话给drain 方法阻止执行 直到剪辑播放完成 然而 当多次运行下面的代码时 有时有效 有时无效 并且声音在结束前随机停止 Mixer mixer AudioSystem ge
  • AccountManager 和签名检查

    安全提示 https developer android com training articles security tips html Crypto相关章节AccountManager提到 如果凭据仅由您创建的应用程序使用 您可以 使用
  • 为什么要费心使用 ArrayList(intcapacity) 呢?

    因此 几乎每个与 ArrayList 容量相关的问题都是如何使用它或 奇怪地 访问它 我对这些信息非常熟悉 我感兴趣的是 如果您碰巧知道或粗略地知道 ArrayList 中有多少项 是否真的值得使用设置容量的 ArrayList 构造函数