当前位置: 首页 > 面试题库 >

Java ArrayList的初始大小

雷飞虎
2023-03-14
问题内容

你可以通过执行以下操作来设置ArrayList的初始大小:

ArrayList<Integer> arr=new ArrayList<Integer>(10);

但是,你做不到

arr.add(5, 10);

因为它会导致超出范围的异常。

如果无法访问分配的空间,设置初始大小有什么用?

add函数的定义是,add(int index, Object element)所以我不添加索引10。


问题答案:

你将数组列表的大小与其容量混淆了:

的大小是在列表中的元素的数目;
的容量是多少元素列表可以潜在地容纳而不重新分配其内部结构。
呼叫时new ArrayList<Integer>(10),你是在设置列表的初始容量,而不是列表的大小。换句话说,以这种方式构造时,数组列表的生命开始为空。

将十个元素添加到数组列表的一种方法是使用循环:

for (int i = 0; i < 10; i++) {
  arr.add(0);
}

完成此操作后,你现在可以修改索引为0..9的元素。



 类似资料:
  • 问题内容: 显然,javac中初始化字符串的大小受到限制。谁能帮助我确定最大限额? 谢谢 编辑: 我们正在构建一个初始化字符串,看起来像这样的“ {1,2,3,4,5,6,7,8 ......}”,但理想情况下应包含10,000个数字。当我们为1000执行此操作时,10,000会引发错误,提示代码对于try语句而言太大。 为了产生这种效果,我们使用了一个stringbuilder并在附加值的数组上

  • 问题内容: 我正在写很多东西来登录突发,并优化数据路径。我用建立日志文本。从内存管理角度来看,最有效的初始容量是什么,因此不管使用JVM,它都能正常工作吗?目标是几乎总是避免重新分配,这应该由大约80-100的初始容量覆盖。但是我也想浪费尽可能少的字节,因为StringBuilder实例可能会在缓冲区中徘徊,浪费的字节会大量出现。 我意识到这取决于JVM,但是应该有一些值,这将浪费最少的字节数,而

  • 问题内容: 当我运行具有NLP库的Java类时出现此错误。 任何想法,我怎么可以解决这个错误:) 问题答案: 您应注意,如果将初始堆大小设置为大于最大堆大小,则应用程序将产生此类错误 表示 初始堆大小 表示特定JVM 允许的最大堆大小 错,因为默认的最大堆大小可能小于128m 更好,因为初始大小等于或大于最大值 在此处阅读更多信息http://javahowto.blogspot.com/2006

  • 我正在开发一个应用程序,使用户能够绘制图形,即边和节点。作为节点,我目前正在使用普通的JavaFX标签元素。在绘制边时,我需要考虑标签的边界,然而,标签的宽度和高度似乎只有在“绘制”它之后才初始化。E、 例如,启动应用程序时,标签边界的宽度/高度为0,但如果用户重新定位标签,则宽度/高度是正确的。 是否有可能强制JavaFX绘制当前元素?代码相当复杂,但下面给出了我想做的事情: 我还尝试将文本包装

  • 我正在使用IntelliJ 2020.1 Ultimate,并且有一个JBoss 7.0.2服务器,我想从IntelliJ运行。 我将其添加为配置: 但是当我尝试启动服务器时,我收到以下错误: IDEA.app/Contents/plugins/Kotlin/lib/jps/kotlin-jps-plugin.jar:/Applications/IntelliJ IDEA.app/Contents

  • 请给我建议如何增加ByteBuf的初始容量。 在以下情况下: 如果收入消息超过了ByteBuf的最大容量-我得到剪切数据。对于这个项目来说,获得完整的、非分块的消息是至关重要的。