gpt4 book ai didi

java - 迭代器不工作

转载 作者:行者123 更新时间:2023-11-30 08:03:04 24 4
gpt4 key购买 nike

以下代码正确获取值但未打印元素总数。输出总是缺少一个元素。

package com.java.arraylist;

import java.util.*;

public class ArrayList_1 {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<String>();
ArrayList_1 obj = new ArrayList_1();
obj.readList(arrayList);
obj.displayList(arrayList);
}

private void displayList(ArrayList<String> arrayList) {
Iterator<String> it = arrayList.iterator();
System.out.println("Entered Array List elements are : ");
while(it.hasNext()){
System.out.println(it.next());
}
}

private void readList(ArrayList<String> arrayList) {
Scanner scanner = new Scanner(System.in);
System.out.println("How many elements are you going to put in this list?");
int end = scanner.nextInt();
int start = 1;
System.out.println("Enter the elements to be added");
while (scanner.hasNext() && start < end) {
String item = scanner.next();
arrayList.add(item);
start++;
}
scanner.close();
}
}

最佳答案

readList 中的 while 循环差 1。

例如,当end是 1,你永远不会输入 while循环(因为 1<1 为假),所以你什么都不读。

要么初始化start为 0 或将结束条件更改为 start <= end .

编辑:

将您的条件更改为:

while (start <= end && scanner.hasNext())

scanner.hasNext()等待输入扫描时可能会阻塞。

这样,当start <= end为假,循环将结束而不调用 scanner.hasNext() .

关于java - 迭代器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36468987/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com