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()
,前提是您不需要预先询问用户字数。
我想创建一个 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()
,前提是您不需要预先询问用户字数。