栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java ArrayList IndexOutOfBoundsException尽管提供了初始容量

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java ArrayList IndexOutOfBoundsException尽管提供了初始容量

这是来源

ArrayList

构造函数:

public ArrayList(int initialCapacity) {     super();     if (initialCapacity < 0)          throw new IllegalArgumentException("Illegal Capacity: "+ initialCapacity);     this.elementData = new Object[initialCapacity];}

您致电

set(int, E)

public E set(int index, E element) {     rangeCheck(index);       E oldValue = elementData(index);     elementData[index] = element;     return oldValue;}

Set
电话
rangeCheck(int)

private void rangeCheck(int index) {    if (index >= size) {         throw new IndexOutOfBoundsException(outOfBoundsMsg(index));    }}

它可能很微妙,但是当您调用构造函数时,尽管初始化了an

Object[]
,但您并未初始化
size
。因此,从中
rangeCheck
,您会得到
IndexOutOfBoundsException
,因为它
size
是0。因此
set(int,E)
,您可以使用
add(Ee)
(在您的情况下,将
e
类型添加
E
到列表的末尾)来代替使用,
add(1)
而这不会发生。或者,如果适合您,则可以按照另一个答案中的建议将所有元素初始化为0。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/610086.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号