- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用以前的方法使用 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/
有人可以告诉我,如果 (ListIterator it = listIterator(); it.hasNext(); )部分代码应写为 for (ListIterator it = list.lis
我在替换数组列表中的项目时遇到问题。我搜索了 soultion,发现它是由 listIterator 完成的。所以我想实现它,但不知何故迭代器的“set”方法不可用。为什么?整个事情都发生在我的 sp
我有两个 ArrayList,每个都包含一定大小的块:blockList、eraseList。块是具有两个字段的对象:开始和结束。我需要从另一组块中减去一组块。 我必须遍历删除器列表并从它们重叠的块列
我有一个自定义的、通用的、单独的 LinkedList,它是我自己构建的。我可以在列表中添加、删除等。我想在我的类中实现 Java ListIterator。我将如何开始这个?我需要将哪些方法添加到我
我正在努力实现一种检查 ArrayList 中连续相等元素的最大数量的方法: public class ArrayReader { public int getMaxConsecutiveEq
我有一个简单的 Java LinkedList,它有 10 个元素。在这种状态下,我得到一个普通的 ListIterator,比如 .listIterator(3)。如果我随后将其他元素插入/删除到列
我正在读一篇thread这里介绍一下java ArrayList和LinkedList的性能。有来自Mr Kevin Brock的答复内容如下。 "Linked list add is not alw
我有一个引用类型的数组。我想使用 hasPrevious() 和 hasNext() 方法。我想使用ListIterator。将数组转换为 ListIterator 的正确方法吗? 最佳答案 我发现执
我有一个简短的问题,关于 ListIterators(我想,通常是 Iterators)在 Java 中的表现。例如,对于一个链表(Java 的标准链表),如果我为其获取一个 ListIterator
我需要在ListIterator“nodeListIterator”中交换node和node.getNext(),并且我已经尝试了几个小时 if (node instanceof LdcInsnNo
所以我的问题是,是否可以通过使用带有列表名称(foodList、foodAmount 等)的数组来简化这段代码,而不是用列表名称(来自所述数组)进行某种循环来替换迭代器中的占位符? 这是代码: pub
package wrap; import java.util.*; public class ArrayListDemo { public static void main(String []
我目前正在尝试学习如何实现我自己的 ListIterators。除了我对 previous() 方法感到困惑外,我已经实现了其中的大部分并准备就绪。按照标准惯例,我可以解释一下 previous()
我有如下所示的代码片段: ArrayList a = new ArrayList(); ListIterator p = a.listIterator(); 但是,我注意到您实际上不需要为 Li
代码: Random Picker = new Random(); List list = new ArrayList(); list.add("card1"); list.add("ca
关于Java中迭代的问题。我(在某种程度上)熟悉 Iterator、ListIterator 和 Iterable 接口(interface),即我了解它们背后的想法。但这也是我的问题所在。 如果
我有两个类:ParentClass 和 SubClass。子类继承自父类。我有以下代码:(在类内) List lstSub; //some initialization public ListIter
我编写了以下使用列表迭代器函数的代码,为什么没有打印出结果,谁能告诉我出了什么问题?谢谢。 import java.util.ArrayList; import java.util.ListItera
如何从 ListIterator 中删除所有元素,然后添加新元素。我在最后一行添加到迭代器时遇到 ConcurrentModificationException 。 public static voi
我正在使用 Java 进行编程,我创建了一个类来获取一个迭代器,因为我在此代码中仅使用一个列表 public ListIterator iterateur() { ListIterator i
我是一名优秀的程序员,十分优秀!