首页 > 代码库 > Arratlist的add函数的插入使用bug
Arratlist的add函数的插入使用bug
在做作业的过程之中遇到很奇怪的bug,经过在网上查阅资料发现有人已经针对我出现的过的问题给了的答案,如下所示(以下内容来源于网络)
List list =
new
ArrayList(
50
);
list.add(
0
,element);
list.add(
2
,element);
list.add(
1
,element);
编译运行之后抛出了exception,百思不得其解,等到看了源码之后才发现原因,ArrayList add(index,element)方法源码:
|
public
void add( int index, E element) { if
(index > size || index < 0 ) throw
new IndexOutOfBoundsException( "Index: " +index+ ", Size: " +size); ensureCapacity(size+ 1 );
// Increments modCount!! System.arraycopy(elementData, index, elementData, index +
1 , size - index); elementData[index] = element; size++; } |
从代码中可以看出,当数组中的元素个数(size)小于index的时候,此方法是会抛出异常的。
所以此方法只适用于想要插入的位置小于数组中实际元素个数的时候才有作用。
也就是说,让list里面没有元素时,想通过插入元素到指定位置来达到排序的效果是不可行的。
Arratlist的add函数的插入使用bug
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。