Arraylist 是一个比预期长的元素

Arraylist is one element longer than intended

我想创建一个 Arraylist 来保存用户输入的字符串:

System.out.println("How many words do you want to enter?");
int numVerbs = scan.nextInt();
ArrayList <String> verbs = new ArrayList <String> (numVerbs);
System.out.println("Start entering words:");
for(int i=0;i<=numVerbs;i++){
   verbs.add(scan.nextLine());
}
System.out.print(verbs.size());
}

问题是,当我创建字符串并将其添加到列表中,然后打印出数组列表的大小时,它比我想要的大了一个元素。

例如,我输入3作为我要添加的字数,那么我就输入3个字。但是,当我打印回 arraylist 的大小时,它是 4 - 而不是 3。

可能与 verbs.add 到空列表有关? Idk,我很茫然。

循环开始于 1:

for(int i = 1; i <= numVerbs; i++){ ... }

或将条件从 i <= numVerbs 更改为 i < numVerbs

for(int i = 0; i < numVerbs; i++){ ... }

这是必要的,因为按原样,for 循环从 0 开始,然后循环直到输入的数字 包含 因此您要执行一次额外的迭代必填。

您也可以将 for:each 循环替换为 while scan.hasNextLine(),前提是您不需要预先询问用户字数。