数组列表 - 索引超出绑定异常

时间:2014-02-02 17:09:17

标签: java arraylist

我有一个ArrayList,它的索引似乎有问题,但它不应该。 下面是守则:

public class Main{

    public static void main(String[] args){

        ArrayList<String> list = new ArrayList<String>();
        String str = "example";
        int one = 1;
        list.ensureCapacity(one);
        list.add(one - 1, str);
        System.out.printn(list.get(one - 1));

    }
}

错误消息:

Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 0

at java.util.ArrayList.rangeCheckForAdd(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at Main.main(Main.java:9) //list.add(one - 1, str);

提前谢谢!

3 个答案:

答案 0 :(得分:2)

你向我们展示的代码运行良好。

假设您收到错误

list.add(one, str); // instead of: list.add(one - 1, str);

这是解释。

ArrayList#add(int, E) javadoc

  

将指定元素插入此列表中的指定位置。

您当前ArrayList中没有位置1。它是空的,即使它可能有更多元素的容量。

答案 1 :(得分:2)

代码是完美的唯一问题,存在于行

中的当前代码中
    System.out.printn(list.get(one - 1));
--------------------^

使用printlnprint

答案 2 :(得分:0)

只有当我改变int one = 2;时我才能重现你所得到的错误。使用int one = 1;打印出example