【发布时间】:2013-10-16 17:14:57
【问题描述】:
static ArrayList<Integer> usedArray = new ArrayList<Integer>();
public static void arrayContents(){
usedArray.add(2, 2);
usedArray.add(1, 1);
}
public static void app(){
Random generator = new Random ();
int randomNumber = generator.nextInt(usedArray.size());
System.out.println(usedArray);
System.out.println(randomNumber);
if(randomNumber == 2){
score();
question2();
usedArray.remove(2);
app();
}
有
.add(2, 2)
我收到一个错误:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 0
但是使用
.add(2)
0 作为数组的一部分生成,即使它不是数组中保存的值。默认情况下,数组是否总是包含 0,有什么办法可以解决这个问题,使 0 不能作为随机数生成?
【问题讨论】:
-
使用前请阅读该类的javadoc。
-
你为什么要使用基于索引的添加? .add(index, object) 而不仅仅是 .add(object)
-
ArrayLists有 0-based 索引(即)起始索引是0,最后一个索引是list.size()-1。
标签: java arraylist indexing int