Arratlist的add函数的插入使用bug

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

集合框架

pandas使用assign函数在dataframe数据列中插入全是全是缺失值(NaN)的数据列(add an empty column in dataframe)

python的自省函数, 快速找出BUG的良器

Woocommerce-在使用get_value插入钩子函数后,结帐列上的空白内容

java数组之间区别

QT实现appendSheet(QAxObject的一种Add + Move的方法)