- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
使用 Java (1.6) 是调用 List 上的 clear() 方法还是重新实例化引用更好?
我有一个 ArrayList,其中填充了未知数量的对象并定期“刷新” - 处理对象并清除列表。一旦刷新,列表就会再次被填满。刷新发生在随机时间。列表中的数字可能很小(10 个对象)或很大(数百万个对象)。
那么“flush”调用 clear() 还是 new ArrayList() 更好?
是否值得担心这类问题,还是应该让 VM 担心?我怎样才能查看 Java 的内存占用量来为自己解决这种问题?
非常感谢任何帮助。
最佳答案
要关注的主要是other 代码可能对列表有引用。如果现有列表在其他地方可见,您希望该代码看到一个已清除的列表,还是保留现有列表?
如果没有其他人可以看到该列表,我可能会清除它 - 但不是出于性能原因;只是因为您描述操作的方式听起来更像是清除而不是“创建新列表”。
ArrayList<T>
文档没有说明底层数据结构会发生什么,但是查看 Eclipse 中的 1.7 实现,看起来您应该调用 trimToSize()
在 clear()
之后- 否则您仍然可以拥有一个由大量空引用支持的列表。 (也许这对你来说不是问题,当然......也许这比随着大小再次增加而不得不复制数组更有效。你会比我们更了解这一点。)
(当然,创建一个新列表不需要旧列表将所有数组元素设置为 null……但我怀疑这在大多数情况下是否重要。)
关于java - 重新实例化 List 或调用 clear() 的更好做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823398/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!