Arraylist比预期的要长一个元素

时间:2017-12-30 19:36:32

标签: java arraylist element

我想创建一个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());
}

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

例如,我将输入3作为我想要添加的单词数,然后我将输入3个单词。但是,当我打印出arraylist的大小时,它是4 - 而不是3。

也许它与verbs.add有关的空列表? Idk,我很茫然。

2 个答案:

答案 0 :(得分:1)

1开始循环:

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

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

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

这是必要的,因为for循环从0开始,然后循环直到输入包含的数字,因此您执行的迭代超过了所需的一次。< / p>

答案 1 :(得分:0)

如果您不需要事先向用户询问单词的数量,也可以替换为:while scan.hasNextLine()的每个循环。