我在 Java 中创建了一个字符串列表,并希望迭代使用迭代器类添加的元素(动物名称)。我想知道为什么在下面的代码中手动输入 it.next() 不会逐个打印出动物,而只打印出第一个动物“Dog”。
public static void main(String[] args) {
LinkedList<String> animals = new LinkedList<>();
animals.add("Dog");
animals.add("Cat");
animals.add("Fox");
animals.add("Rabbit");
Iterator<String> it = animals.iterator();
String animal1 = it.next();
System.out.println(animal1);
it.next();
System.out.println(animal1);
it.next()
System.out.println(animal1);
}
我得到的输出是:
Dog
Dog
Dog
为什么它不逐行打印所有动物?像这样:
Dog
Cat
Fox
Rabbit
最佳答案
因为您只是在第一次调用时将 it.next()
的结果分配给 animal1
。
这将为您提供您期望的行为:
String animal1 = it.next();
System.out.println(animal1);
animal1 = it.next();
System.out.println(animal1);
animal1 = it.next()
System.out.println(animal1);
关于java - 对于 .next() 在 Java 迭代器中如何在不使用 for 循环的情况下工作感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55770275/