当前位置: 首页 > news >正文

Java 开发问题:ArrayList 容量误解导致越界

List<Integer>list=newArrayList<>(3);list.set(0,100);
  • 在 Java 开发中,执行上述代码,出现如下错误信息
java.lang.IndexOutOfBoundsException: Index 0 out of bounds for length 0
问题原因
  1. initialCapacity 是底层数组的大小,size 是列表中实际存储的元素个数
publicArrayList(intinitialCapacity){if(initialCapacity>0){this.elementData=newObject[initialCapacity];}elseif(initialCapacity==0){this.elementData=EMPTY_ELEMENTDATA;}else{thrownewIllegalArgumentException("Illegal Capacity: "+initialCapacity);}}
publicEset(intindex,Eelement){if(index>=size)thrownewIndexOutOfBoundsException(outOfBoundsMsg(index));EoldValue=(E)elementData[index];elementData[index]=element;returnoldValue;}
  1. 调用 size 方法仍为 0
List<Integer>list=newArrayList<>(3);System.out.println(list.size());
# 输出结果 0
处理策略
  • 初始化时填充 null 值
intinitialCapacity=3;List<Integer>list=newArrayList<>(initialCapacity);for(inti=0;i<initialCapacity;i++){list.add(null);}System.out.println(list.size());list.set(0,100);System.out.println(list.get(0));
# 输出结果 3 100
http://www.jsqmd.com/news/794346/

相关文章:

  • 别再瞎学 C 语言了!真・胎教级入门教程 | NO.3 万字详解分支与循环 | 下篇
  • 从混淆矩阵到mIOU:手把手解析语义分割核心评价指标
  • Unity RenderTexture进阶:从刮刮乐到可擦写3D表面(Shader与LineRenderer实战)
  • 离线式SMPS输入整流器设计与优化指南
  • web项目工程搭建、Result封装类、部门功能的增删改查和日志技术Logback
  • ImageGlass深度解析:打造Windows平台高效图像浏览的实战指南
  • DISTINCT 带 WHERE 仍全表扫描?两层优化刀法拆解
  • 鸿蒙与 H5 通信使用的方法及原理
  • 如何彻底解决显卡驱动残留问题?Display Driver Uninstaller深度解析指南
  • 英伟达400亿投资帝国:从卖芯片到控生态,黄仁勋的AI全链路野心
  • PCI、PCIe与InfiniBand接口技术对比与应用解析
  • 百度网盘直链解析技术深度解析:突破限速壁垒的工程实践
  • 【测试方案_100 BASE-T1】快速掌握100BASE-T1 PMA物理层一致性测试
  • MySQL索引失效
  • MCP协议实战:outx-mcp-server如何安全扩展AI工具调用能力
  • 基于 Harmony6.0 的城市空气质量监测页面开发实践:ArkUI 页面构建与跨端能力深度解析
  • PX4 Firmware V1.14.4 开源支持
  • Claude代码自动模式:跳过权限的更安全方式 Claude Code auto mode: a safer way to skip permissions —— Anthropic
  • 量子去极化信道与3槽序列纯化策略解析
  • SecureVault - 基于新范式的Windows文件加密工具
  • 《Java 100 天进阶之路》第2篇:配置Java环境变量
  • 如何在Mac上快速搭建局域网通信系统:飞秋Mac版完整教程
  • HarmonyOS 6.0 跨端页面构建实践:从 UI 代码到热力交互卡片设计
  • 基于AI流水线架构的自动化播客生成:从文本到音频的工程实践
  • DAY 4.链表中环的入口节点
  • Diablo Edit2:暗黑破坏神2存档编辑器的终极使用指南
  • MCP协议实战:构建安全可控的AI智能体外部工具集成平台
  • 《Java 100 天进阶之路》第3篇:为何要配置环境变量?
  • 开源项目封装实战:适配器模式与门面模式提升开发体验
  • 链表专项(二):链表反转、环判断