gpt4 book ai didi

java - 为什么这两个列表迭代器的行为不同?

转载 作者:搜寻专家 更新时间:2023-10-31 19:55:53 24 4
gpt4 key购买 nike

我正在练习列表迭代然后卡住了。我的问题是,为什么这两种方法会给出不同的结果。

第一个代码打印出一个无限循环。第二个,打印出索引中的下一个字符串。

我是java新手,这也是我的第一门语言。

public static void main(String[] args) {


String[] hi = {"yo", "wat", "sup"};
List<String> l1 = new ArrayList(Arrays.asList(hi));

while (l1.iterator().hasNext()) {


System.out.println(l1.iterator().next());
;
}
}

对比

public static void main(String[] args) {


String[] hi = {"yo", "wat", "sup"};
List<String> l1 = new ArrayList(Arrays.asList(hi));

Iterator<String> rator = l1.iterator();

while (rator.hasNext()) {
System.out.println(rator.next());
}
}

最佳答案

l1.iterator( 总是 生成一个新的 迭代器。在第一段代码中,您创建了一个新的迭代器,将其丢弃,重新创建它,然后再次丢弃它。由于迭代器没有机会到达终点,因此您永远不会退出循环。

关于java - 为什么这两个列表迭代器的行为不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18556324/

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