java - Java 6SE中ArrayList的增长策略

标签 java optimization arraylist

想知道有谁知道Java 1.6中ArrayList的增长策略吗? java 文档说

The details of the growth policy are not specified beyond the fact that adding an element has constant amortized time cost.

但我只是想知道细节,因为我知道我的目标开始尺寸,但我想确保我的初始尺寸足够大,不会导致即时调整大小。我知道使用 HashMap 你可以设置一个负载因子,后台是否有类似的情况发生?或者当空间耗尽时它总是会增长?

最佳答案

ArrayList 不需要 loadFactor,因为它在 100% 填充时总是会增长,因此您可以使用预先知道的大小来创建它,并且如果您稍后填充那么多元素,它就不会增长。另一方面,哈希表填充得越多,效率就越低,因此您可以使用 loadFactor 来调整性能和浪费空间之间的权衡,但对于像 ArrayList 这样的可增长数组来说,情况并非如此。

关于java - Java 6SE中ArrayList的增长策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1971483/

相关文章:

java - Arraylist 不起作用,项目不堆叠

java - Spring 安全和 Thymeleaf 不起作用

java - 当 JTree 获得焦点时,JMenu 出现在 JTree 后面?

c - while循环中的分支优化,为什么更少的指令花费更多的运行时间?

c++ - 删除字符串中具有相同值的任何相邻字母的 “pair”

java - 文件读取时出错

java - 如何在 Android 中获取可用的屏幕宽度和高度

java - 在 Java 中抛出简单异常

c - __attribute__((pure)) 应用于 void 函数

android - 无法从 putParcelable 函数传递 arraylist,错误 Wrong argument Found ImagesPath required Parceble