关闭。这个问题不符合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/