【问题标题】:Adding elements to ArrayList while using Iterator in Java在 Java 中使用迭代器时向 ArrayList 添加元素
【发布时间】:2011-12-23 10:51:16
【问题描述】:

我在使用Iterator 时向ArrayList 添加元素时遇到问题。在下面的代码中,它给了我这个输出:

一种 ķ s

但它仍然错过了我通过迭代器添加的那个。即我的输出中缺少r。有没有办法可以使用IteratorArrayList 添加元素?

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);
}


}

【问题讨论】:

  • 你期望你的输出是什么?

标签: java iterator arraylist


【解决方案1】:

检查Javadoc。它按记录工作。在迭代期间添加元素不会通过迭代器返回该元素,除非您向后退。

【讨论】:

  • 感谢您的重播。当我尝试使用迭代器时,我无法添加新元素。正如我所指定的,我试图在 while 循环中添加 r。这是行不通的。
  • -1:您至少应该引用文档中的相关部分。
  • 它正在工作。您已注释掉的第二个打印语句应包含所有四个字母。
  • @BjörnPollex 我完全不同意。文档在那里可供阅读。规格或措辞可能会略有变化,这会使报价过时。这里的重点是 OP 根本不理解,甚至更可能根本没有阅读 Javadoc。
  • @jbrookover 您的评论与我的回答无关。如果您有自己的答案,我建议您发布它。
【解决方案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);  
} 

【讨论】:

  • 很高兴您在这三年后解决了这个问题!但这看起来不会终止。每次在循环中,你去掉一项并添加两项?
猜你喜欢
  • 1970-01-01
  • 2022-12-17
  • 2012-06-26
  • 1970-01-01
  • 2020-03-18
  • 2021-11-21
  • 1970-01-01
  • 2012-07-22
  • 1970-01-01
相关资源
最近更新 更多