我看不出什么毛病我的代码: -为什么我得到一个ArrayIndexOutOfBoundsException对于我的ArrayList
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
int[] A = new int[] {2, 1, 1, 2, 3, 1};
ArrayList<Integer> foundNumbers = new ArrayList<>();
int distinct = 0;
for(int i = 0; i < A.length-1; i++) {
if(foundNumbers.get(i-1) == null) {
foundNumbers.set((i-1), A[i]);
distinct++;
}
}
System.out.println(distinct);
}
}
我要检查,如果数组元素的值我已经被分配给ArrayList的元素i-1 ,然后递增不同的变量并打印数组中有多少个不同的值。
这里的异常,当我i的值改变为1: -
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at tdd.Main.main(Main.java:19)
'I-1 = -1' i = 0时 –
'指数:0,大小:0' - 这是什么告诉你吗? –
@HotLicks ArrayLists自动扩展它们吗? –