我运行了我的代码......第28行有一个错误。它是那个说的 hey.remove(whatnumber); 我无法弄清楚它有什么问题。我尝试使用调试,但是 我不知道如何使用它。 这是代码。
import java.util.ArrayList;
import java.util.Scanner;
public class ACSL_Grid_Fit {
public static void main(String args[]) {
run();
for(int w=1;w<=25;w++) {
hey.add(w,w);
}
}
public static ArrayList<Integer> hey = new ArrayList<Integer>();
public static int howmany;
public static int whatnumber;
public static int choice;
public static Scanner sc = new Scanner(System.in);
public static void run() {
input();
countcalc();
}
public static void input() {
{
sc.useDelimiter(", |\n");
howmany= sc.nextInt();
for(int x = 1; x<=howmany;x++) {
whatnumber = sc.nextInt();
hey.remove(whatnumber);
}
}
choice = sc.nextInt();
switch(choice) {
case 1:
int i = 0;
while(i<hey.get(0)) {
i++;
}
System.out.println(i);
hey.remove(i);
case 2:
case 3:
}
}
public static void countcalc() {
}
}
答案 0 :(得分:0)
要避免使用IndexOutOfBoundsException
,您需要在尝试之前将值添加到列表run()
在这里使用此代码,您必须记住没有索引0
for(int w=1;w<=25;w++) {
hey.add(w,w);
}
您从1开始索引,因此0为空;
编辑:我刚抓到这个
在列表中有任何值之前,您正试图run()
public static void main(String args[]) {
run();
for(int w=1;w<=25;w++) {
hey.add(w,w);
}
}
只需切换它们
public static void main(String args[]) {
for(int w=1;w<=25;w++) {
hey.add(w,w);
}
run();
}
编辑:我知道这是一个以
开头的问题hey.add(w,w);
当没有索引w
时,您尝试在索引w
添加。 hey
的大小为0,直到您添加为止。
就这样做。
for(int w=1;w<=25;w++) {
hey.add(w);
}
如果要删除号码,请使用此
hey.remove(whatnumber - 1)
// example, since 20 is at index 19, you want to remove whatnumber - 1