重新实例化列表或调用clear()的更好做法

2024-04-15

使用 Java (1.6) 是在 List 上调用 clear() 方法更好还是只是重新实例化引用更好?

我有一个 ArrayList,其中填充了未知数量的对象,并定期“刷新” - 处理对象并清除列表。一旦刷新,列表就会再次填满。刷新是随机发生的。列表中的数量可能很小(10 个对象)或很大(数百万个对象)。

那么,使用“flush”调用clear()还是new ArrayList()更好呢?

是否值得担心这类问题,或者我应该让虚拟机担心它?我怎样才能通过查看 Java 的内存占用来为自己解决这类问题呢?

非常感谢任何帮助。


主要需要关心的是other代码可能会引用该列表。如果现有列表在其他地方可见,您希望该代码看到已清除的列表,还是保留现有列表?

如果没有其他东西可以看到该列表,我可能会清除它 - 但不是出于性能原因;只是因为你描述操作的方式sounds更像是清理而不是“创建新列表”。

The ArrayList<T>文档没有指定底层数据结构会发生什么,但是看看 Eclipse 中的 1.7 实现,看起来您应该调用trimToSize() after clear()- 否则你仍然可以拥有一个由大量空引用支持的列表。 (当然,也许这对您来说不是问题......也许这比随着大小再次增加而必须复制数组更有效。您会比我们更了解这一点。)

(当然,创建新列表不需要旧列表将所有数组元素设置为空......但我怀疑这在大多数情况下会很重要。)

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

重新实例化列表或调用clear()的更好做法 的相关文章

  • 使用 Spring MVC 返回 PDF 文件

    实际上 我有这个功能 我有一个框架 可以在其中设置 URL ip port birt preview report report rptdesign format pdf parameters 并且该框架呈现 PDF 文件 但我想隐藏该网址
  • Spring Data:限制自定义查询的结果

    在我的 Spring 数据存储库中 我 必须 使用自定义查询 Query注解 我知道我可以限制这样的命名查询中的结果数量 Iterable
  • 如何将列表转换为地图?

    最近我和一位同事讨论了转换的最佳方式是什么List to Map在 Java 中 这样做是否有任何具体的好处 我想知道最佳的转换方法 如果有人可以指导我 我将非常感激 这是个好方法吗 List
  • Eclipse 自动完成更改变量名称

    只是一个愚蠢的问题 但很难搜索 因为有很多关于 Eclipse 自动完成的主题 而且很难找到与我的问题匹配的内容 所以问题是 如果我写 MyClass MyVarName 然后按空格键 添加 new MyClass Eclipse 自动添加
  • 我们如何测试我们的 Java UI?

    我们正在寻找记录和回放类型的测试工具来自动化我们的一些 UI 功能测试 我们已经研究了从 Silke 到 QTP 的大多数常见嫌疑 但没有一个起作用 当需要右键单击才能从右键单击菜单中选择某些内容时 或者当您必须在网格的下拉列表中选择一个值
  • DateTimeFormatter.parseLocalDate 抛出 UnsupportedOperationException

    该API用于解析本地日期 http joda time sourceforge net apidocs org joda time format DateTimeFormatter html parseLocalDate 28java la
  • JSON 对象数组转 Java POJO

    将此 JSON 对象转换为 java 中的类 您的 POJO 类中的映射将如何 ownerName Robert pets name Kitty name Rex name Jake This kind of question is ver
  • 在java.util中获取错误ArrayList不带参数[重复]

    这个问题在这里已经有答案了 我已经创建了一个类 Student 现在我尝试将我的 Student 对象存储在 ArrayList 中 但在编译 ArrayList 不接受参数时出现错误 我已经检查了我的代码很多次 但找不到问题所在 我的学生
  • Ant 无法启动,给出主类错误

    我正在运行 Elementary OS 基于 Ubuntu 12 并且在运行 apache ant 时遇到问题 它在重新启动之前就可以正常工作 所以我不确定会发生什么变化 我在 etc environment 中定义了环境变量 如下所示 P
  • 将 EditText 聚焦在设备上运行的 PopupWindow 中时出现异常

    我正在为 Android 开发一个弹出窗口 它正在工作 我在上面添加了一个 EditText 和一个按钮 当在 ADV 上运行时 它可以正常工作 而在设备上运行时 当我专注于 EditText 时 这会抛出一个奇怪的异常 android v
  • 使用 CrudRepository 进行自定义查询

    我想使用 CrudRepository 自定义查询 这是我的代码 Repository public interface CustomerRepository extends CrudRepository
  • 我们必须将 .class 文件放在 Tomcat 目录中的位置

    我必须把我的 class文件在 Tomcat 目录中 在我的 Java Complete Reference 书中 他们告诉将其放入C Program Files Apache Tomcat 4 0 webapps examples WEB
  • 驱动程序信息:driver.version:未知,使用 ChromeDriver v78.0.3904.70 和 Chrome 浏览器 v78.0.3904.97

    我使用的是java 1 8和chrome浏览器版本78 0 3904 97 我正在尝试使用 chrome 驱动程序版本执行我的 selenium 脚本代码78 0 3904 70 但在执行时我面临以下问题并且 chrome 立即崩溃 Pic
  • wsdl 没有服务元素

    我必须使用 WCF Web 服务并获得 WSDL 外部的 因此无法控制 WSDL 在 WSDL 定义中 我没有找到包含服务 端口和地址元素的服务元素 WSDL 中不存在这种情况正常吗 这对于 WCF WSDL 来说很常见吗 我正在尝试使用轴
  • java 1.8下无法启动eclipse

    java 1 8 升级后我无法启动 eclipse 附上错误截图 这是我的 eclipse 配置设置 我该如何解决 startup plugins org eclipse equinox launcher 1 3 0 v20120522 1
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • R 中的整数或双精度列表

    我有一个大约 1000 个整数的列表 我需要能够进行一些数学计算 但它们被困在列表或字符形式中 我怎样才能切换它们以便它们可用 样本数据 gt y 1 1 7 3 1 6 7 1 7 6 5 3 1 3 3 0 6 2 4 9 19 1 9
  • 升级到 Tomcat 8 时出现 ClassNotFoundException

    我最近将 NetBeans IDE 从 v7 3 升级到 v8 突然我的应用程序在连接到数据库时在服务器启动时抛出异常 这两个版本的 IDE 之间的唯一区别是后者使用 Tomcat 8 异常日志 javax naming NamingExc
  • 如何在 Servlet 中打开弹出窗口,然后重定向页面

    我想在调用 servlet 时打开一个弹出窗口 然后想将 servlet 重定向到某个 jsp page 这就是我所做的 protected void doGet HttpServletRequest request HttpServlet
  • 安卓框架?

    是否有任何框架比构建 Android 应用程序更容易 您会对其中一个感兴趣吗 很快就会有 我正在开发 DroidFu 一个 Android 共享库 它将为您提供 活动 和服务 中直接提供大量实用功能 例如生成列表和错误对话框 检查 Inte

随机推荐

  • 如何在Android移动网站中强制使用数字键盘

    我有一个移动网站 它有一些 HTMLinput其中的元素 如下所示
  • CMake:如何标准化路径? [复制]

    这个问题在这里已经有答案了 是否有一种可靠的方法来标准化 CMake 中的路径 例子 Let s assume that an environment variable MY ROOT DIR is set that points to s
  • Windows Phone 8 上“无法安装公司应用程序”

    我为 Windows Phone 8 开发了一个公司应用程序 并完成了所有建议的步骤来设置它进行安装 我拥有 Symantec 代码签名证书 并且已生成应用程序注册令牌和签名的 XAP 并将其托管在 OneDrive 上的公共文件夹中 我使
  • 如何将 UWP StorageFile 转换为 .NET FileInfo?

    现在 UWP 支持 NET Standard 2 0 它可以访问更多 System IO 命名空间 包括Fileinfo https msdn microsoft com en us library system io fileinfo v
  • 在 ember 数据中,在 forEach 循环中调用 destroyRecord 会破坏循环吗?

    我正在为我的一个项目开发一个简单的标签模型 我已经在 Angular 中实现了类似的东西 但我想在 Ember 中尝试一下 型号代码如下 Tag DS Model extend name DS attr string user DS bel
  • Amazon s3 putObject 标记不起作用

    我正在尝试使用 putObject 方法上传到 Amazon s3 时添加标签 根据文档 我已将标签创建为字符串类型 我的文件已上传到 Amazon s3 但我无法使用提供的标签数据查看文件对象的对象级别标签 根据文档遵循以下代码示例 va
  • 使 td 固定大小(宽度,高度),而其余 td 可以扩展

    您知道如何固定表格中 td 宽度和高度的大小 从而允许表格上的其余 td 根据需要扩展吗 问题是 当 td 内部有数据时 它不会比数据缩小得更多 但如果为空 它会一直缩小 如果扩大窗口 td 也会扩大 我想保留 td 的大小 无论您扩展还是
  • Ruby 中的“+=”(加等于)是什么意思? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 本地化 Spring Boot 验证消息中的消息参数未解析

    我正在使用构建一个项目春季启动2 1 8 我有spring boot 启动器 web在我的 POM 中 我可以看到 Maven 拉动休眠验证器 6 0 17到类路径上 我的消息位于资源文件夹中 并且它们似乎已正确查找 因此当我更改区域设置时
  • 如何在android中制作文字动画?

    在我的 Android 应用程序中 我试图显示一个 正在加载 文本 该文本每 100 毫秒就会更改一次 每 100 毫秒后就会增加一个点 所以首先它会像 正在加载 再过 100 毫秒 它将变为 正在加载 当变为 正在加载 时 该过程将终止并
  • 菜单栏隐藏时 JMenuItem 加速器不起作用

    这个问题是后续问题这个问题 https stackoverflow com questions 18093773 jmenubar selectionmodel changelistener only fires once 我有一个JMen
  • 如何在 Windows 的 Java 中启用小型转储

    我不断收到并看到此消息 无法写入核心转储 Windows 客户端版本默认不启用小型转储 所以我需要知道 如何在 Java 中启用小型转储 在 Windows 计算机上 可选 一旦获得小型转储 如何解释它 我试图找到这两个问题的答案 但我发现
  • ASP.NET vNext 全局配置访问

    正确 推荐的访问方式是什么config jsonASP NET vNext 中的文件 或存储配置的其他位置 In the Startup类 我像这样设置配置 public class Startup public IConfiguratio
  • 重置本地git仓库

    几天前 我在 Github 上创建了一个存储库 然后按照步骤将我现有的解决方案添加到其中 我不知道我做错了什么 但是经过一些随机的 git add 命令等等之后 我现在在 Windows 的 github 中收到消息 failed to s
  • 字典和对

    在 R 中 我想知道我是否可以有一本字典 在某种意义上像 python 其中我有一对 i j 作为具有相应整数值的键 我还没有看到一种干净或直观的方法来构建它R 我的字典的视觉效果是 1 2 gt 1 1 3 gt 3 1 4 gt 4 1
  • 使用 Django、webpack、reactjs、react-router 解耦前端和后端

    我正在尝试在项目中解耦我的前端和后端 我的前端由以下组成reactjs和路由将完成react router 我的后端如果做成形式Django我计划使用前端对 Django 进行 API ajax 调用 现在我不确定如何让这两端正确地相互通信
  • 屏幕旋转后,findFragmentById() 返回一个片段,即使布局内没有这样的 ID

    我有两种方向的一种布局 1 个横向和 1 个纵向 layout land main xml有两个片段
  • HTML5 音频缓冲区卡住

    我使用 HTML5 webkitAudioContext 使用以下代码获取用户麦克风的实时级别 var liveSource function getLevel var context new webkitAudioContext navi
  • 带参数的 C# ReportViewer 本地报表

    大家下午好 过去 2 周的大部分时间我都在寻求有关 C WinForm 应用程序问题的帮助 我有一个表单 其中有一个 DataGridView 显示从数据库中提取的详细信息 当用户双击该网格中的一行时 代码从 CustomerID 列中获取
  • 重新实例化列表或调用clear()的更好做法

    使用 Java 1 6 是在 List 上调用 clear 方法更好还是只是重新实例化引用更好 我有一个 ArrayList 其中填充了未知数量的对象 并定期 刷新 处理对象并清除列表 一旦刷新 列表就会再次填满 刷新是随机发生的 列表中的