gpt4 book ai didi

java - 以下带有listiterator的代码无限运行

转载 作者:行者123 更新时间:2023-11-30 05:49:20 25 4
gpt4 key购买 nike

我正在尝试使用以前的方法使用 listiterator 迭代列表。在循环中如果我尝试使用 listiterator.add 方法添加元素,则循环将无限迭代

我尝试调试代码,但找不到确切原因

public static methodOne() {
List l = new ArrayList();
for(int i = 0; i < 5; i++) {
l.add(i);
}
ListIterator li = l.listIterator();
while(li.hasNext()) {
li.next();
}
while(li.hasPrevious()) {
Integer i = (Integer)li.previous();
li.add(56);
}
System.out.println(l);
}

我预计输出为 56,0,1,56,2,56,3,56,4,56,5

最佳答案

你的最后一个循环无限运行,因为你不断添加一个元素并检查它是否有前一个元素。当然它有前一个,即您刚刚添加的那个。

您可以通过以下方式实现您想要的:-

List<Integer> list = IntStream.range(0, 5)
.flatMap(i -> IntStream.of(56, i))
.boxed()
.collect(Collectors.toList());
System.out.println(list);

输出

[56, 0, 56, 1, 56, 2, 56, 3, 56, 4]

关于java - 以下带有listiterator的代码无限运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54228310/

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