fis*_*ben 22 java list indexoutofboundsexception
根据文档,您可以在List中的任何位置插入对象:
该接口的用户可以精确控制列表中每个元素的插入位置.
(来源:http://download.oracle.com/javase/6/docs/api/java/util/List.html)
但是以下程序因IndexOutOfBoundsException而失败:
import java.util.ArrayList;
public class Test {
    public static void main(String[] args) {
        ArrayList<String> myList = new ArrayList<String>();
        myList.add(0, "derp");
        myList.add(2, "herp");
        for (String s : myList) {
            System.out.println("Le string: " + s);
        }
    }
}
它也没有明确地设置初始容量(这是有道理的,因为默认值是10).
为什么我不能在任何位置插入对象,只要它的索引低于容量?尺寸是否始终等于插入元素的数量?
Jon*_*eet 28
您可以在任何有效位置插入对象.仔细看看Javadoc add(int, E):
抛出:
IndexOutOfBoundsException - 如果索引超出范围(index < 0 || index > size())
换句话说,在插入的元素总是增加名单由1的大小可以在任意一端插入,或者在中间......但你不能插入过去的结束.
的容量的ArrayList有效是一个实现细节-它控制时背衬阵列需要通过较大的一个,以应付多种元素来代替.列表的大小在这里是重要的部分 - 容量为100但是大小为5的列表仍然只是5个元素的列表,因此将位置67插入到这样的列表中是没有意义的.
| 归档时间: | 
 | 
| 查看次数: | 62273 次 | 
| 最近记录: |