java - 数组列表 - 索引超出范围异常

标签 java arraylist

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我有一个 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);

先感谢您!

最佳答案

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

假设你得到了错误

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

这就是解释。

ArrayList#add(int, E) javadoc状态

Inserts the specified element at the specified position in this list.



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

关于java - 数组列表 - 索引超出范围异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513489/

相关文章:

java - 数组列表按顺序排序

java - 使 ArrayAdapter<ItemCategory> 接受 LinkedHashSet 而不是 ArrayList

java - 如何创建匿名类对象的数组或集合

java - 如何使用 writeString( ) 方法在用户从对话框中输入的名称周围加上引号?

java 和 C++11 volatile

java - 创建时如何将焦点设置在 JOptionPane 内的特定 JTextfield 上?

java - ArrayList 声明的语法错误

java - 从二叉搜索树中删除节点

java - 在 Java 中创建不可变对象(immutable对象)

java - Hashsets的ArrayList!编译错误