在 Java 中使用迭代器时向 ArrayList 添加元素
Posted
技术标签:
【中文标题】在 Java 中使用迭代器时向 ArrayList 添加元素【英文标题】:Adding elements to ArrayList while using Iterator in Java 【发布时间】:2011-12-23 10:51:16 【问题描述】:我在使用Iterator
时向ArrayList
添加元素时遇到问题。在下面的代码中,它给了我这个输出:
但它仍然错过了我通过迭代器添加的那个。即我的输出中缺少r
。有没有办法可以使用Iterator
向ArrayList
添加元素?
import java.util.ArrayList;
import java.util.ListIterator;
public class Test
public static void main(String args[])
ArrayList<String> array_test= new ArrayList<String>();
array_test.add("a");
array_test.add("k");
array_test.add("d");
array_test.add("s");
array_test.remove("d");
ListIterator<String> it=array_test.listIterator();
while(it.hasNext())
String link=it.next();
it.add("r");
System.out.println(link);
//System.out.println("Contents of arrays list "+array_test);
【问题讨论】:
你期望你的输出是什么? 【参考方案1】:检查Javadoc。它按记录工作。在迭代期间添加元素不会通过迭代器返回该元素,除非您向后退。
【讨论】:
感谢您的重播。当我尝试使用迭代器时,我无法添加新元素。正如我所指定的,我试图在 while 循环中添加 r。这是行不通的。 -1:您至少应该引用文档中的相关部分。 它正在工作。您已注释掉的第二个打印语句应包含所有四个字母。 @BjörnPollex 我完全不同意。文档在那里可供阅读。规格或措辞可能会略有变化,这会使报价过时。这里的重点是 OP 根本不理解,甚至更可能根本没有阅读 Javadoc。 @j***over 您的评论与我的回答无关。如果您有自己的答案,我建议您发布它。【参考方案2】:对不起,我的回复晚了。这是我解决此问题的方法。
for(ListIterator it=array_test.listIterator();it.hasNext();)
String link=it.next();
it.add("r");
it.previous();
it.add("kk");
it.previous();
System.out.println(link);
【讨论】:
很高兴您在这三年后解决了这个问题!但这看起来不会终止。每次在循环中,你去掉一项并添加两项?以上是关于在 Java 中使用迭代器时向 ArrayList 添加元素的主要内容,如果未能解决你的问题,请参考以下文章
Java - 迭代 ArrayList 并查找 Anagrams