【发布时间】:2020-04-29 21:17:37
【问题描述】:
有两个元素的ArrayList
ArrayList<String> a = new ArrayList<String>() {
{
add("hai");
add("hello");
}
};
为该列表创建了一个列表迭代器
ListIterator l = a.listIterator();
使用 next 遍历并在列表中添加一个元素“bye”
while (l.hasNext()) {
l.next();
l.add("bye");
}
System.out.println(a);
以上代码的输出为= [hai,bye,hello,bye]
遍历到列表的最后一个
while(l.hasNext()) {
l.next();
}
使用 prev 向前遍历并在列表中添加一个元素“bye”
while (l.hasPrevious()) {
l.previous();
l.add("bye");
}
System.out.println(a);
无限循环,什么也不打印!!!
【问题讨论】:
-
最后一个while循环是否独立于其他循环?或者你把上面所有的代码一起运行?
-
@MohammedDeifalah 最后两个while循环将同时执行,因为我必须遍历到最后一个才能向前遍历!
-
请浏览oracle文档:docs.oracle.com/javase/7/docs/api/java/util/…
-
@GowthamPrasath 然后,在最后一个循环中,您正在做的是,如第一个答案中所述,您转向最后两个元素之间的位置。然后添加另一个元素。然后你再次转向相同的位置......等等。这是一个无限循环。
-
@MohammedDeifalah 我使用 next() 做了同样的事情,但我没有进入无限循环,只有 previous() 这样做
标签: java collections iterator