JAVA ArrayList add() 方法报错2010-08-314个回答JAVAArrayListadd

2010-08-314个回答JAVAArrayListadd()方法报错
不在是java.util.ArrayList,而是java.util.AbstractList,找到这个类的add方法:/***{@inheritDoc}**<p>Thisimplementationalwaysthrowsan*{@code...查看全部>>
[图文]方法关于ArrayList的add()方法源码位置:java.util.ArrayList:454行到462行publicvoidadd(intindex,Eelement){rangeCheckForAdd(index);ensureCapacityInternal(size+1);...
java的ArrayListadd一千万条数据的效率问题?这和数组扩容的关系不大,楼主是每次都new了一个list.测试下来的情况是,应该和jvm初始内存和最小内存有关系.8个回答2017-01-172015-04-24Java里用Iterator遍历一个ArrayList里的数据比直接用ArrayList里...13个回答2021-03-12Java中ArrayList的get方法如何实现这种强制转换的(泛型擦除相...7个回答2020-12-21javaArrayList的实现方法是什么?6个回答
[图文]抛出java.lang.UnsupportedOperationException异常AggregationResults<...Lists.newArrayList();if(resultList!=null){resultList.stream().forEach(result->{result....
java里,list的add方法出现问题问题描述java里,list的add方法出现问题往list里add后,...add解决方案二:不太可能吧,把代码贴出来看下,list.add()只会网后面添加啊.解决...
这篇文章主要介绍了JavaArrayList.add的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧ArrayList是平时相当常用的List实现,其...
以下是java.util.ArrayList.add()方法的声明publicbooleanadd(Ee)参数e--该元素被添加到这个列表中。返回值此方法返回true。异常NA例子下面的示例演示java.util.Arraylist....
CSDN问答为您找到java里,list的add方法出现问题相关问题答案,如果想了解更多关于java里,list的add方法出现问题、java技术问题等相关问答,请访问CSDN问答。
那当然,比如排除打饭,明明没人排队,你非要说,我要插队,插到第2个位置这不是胡闹嘛插入的位置,必须是数组里已经存在的位置否则就会报错。al.add(2,2);的意思是在数组的第2个元素位置插入元素你的这个数组刚刚创建,一个元素都没有,当然报错你如果是要加入两个2,应该是这样:al.add(2);al.add(2);
直接看API就好,注意最后一句:IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())
add
public void add(int index,
E element)将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。

指定者:
接口 List<E> 中的 add
覆盖:
类 AbstractList<E> 中的 add
参数:
index - 指定元素所插入位置的索引
element - 要插入的元素
抛出:
IndexOutOfBoundsException - 如果索引超出范围 (index < 0 || index > size())

补充------------------------
在指定位置上插入并不是顺序插入的意思呀
比如 1 2 3 4 5 6
现在有6个数,我可以在第三个位置插入一个数7,这样就变成:1 2 7 3 4 5 6
但是我不能在第100个上位置插入,因为目前没有那个位置,你不可能在那插入。
假设可以这样插入的话,在100这个位置插入后,就要将容量扩充至至少100,虽然中间都是null,但是内存也要分配。同样的你还得提防着是不是有人要在10万、100万这个位置插入数字呢?这样说的话,内存迟早要爆掉了……
所以只能在已经被分配了的位置上插入数据,而不能人工的去先插入再要求分配内存空间。
看过ArrayList的源码你会发现add(int index, E element)方法中第一个语句是
if(index > size || index < 0)//size为当前ArrayList.size();
throw new IndexOutOfBoundsException("Index: "+index+", Size: "+size);
所以你的代码中al.add(2,2);会报异常。因为al.size()还为0.
回答的已经很好了,看看源码,学习最快啊