这个问题在这里已有答案:
我通过以下代码得到以下异常:
线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:0在Subset2.main(Subset2.java:13)
import java.util.Scanner;
import static java.lang.Integer.parseInt;
public class Subset2 {
@SuppressWarnings("resource")
public static void main(String[] args) {
RandomizedQueue<String> s = new RandomizedQueue<String>();
Scanner input = new Scanner(System.in); //my input line will be in input(Scanner)
int k = Integer.parseInt(args[0]); //first read k(how many times to start removing
while(input.hasNext()) {
s.enqueue(input.next());
}
while(k-->0) {
System.out.println(s.remove()); //removing k random nodes
}
}
2 回答
因为您需要通过一些输入来调用您的程序:
这是
java
命令的最小用法 .1212
- 以及其他参数 - 是JVM将在args
数组中传递给您的程序的内容 . 它相当于以这种方式调用你的方法:args[0]
将尝试获取作为main方法的参数传递的值的第一个索引 .如果你没有向你的程序传递任何参数,那么
args[]
将为空,因此访问任何索引将抛出ArrayIndexOutOfBoundsException
.