首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >listiterator add方法问题

listiterator add方法问题
EN

Stack Overflow用户
提问于 2020-05-28 05:09:42
回答 1查看 35关注 0票数 1

列表迭代器add方法是如何工作的?使用下面的代码,为什么当我执行“List Iterator forward”循环时,字符串"TREEEEEEEEEEEES“没有打印出来?任何帮助都将不胜感激。谢谢

忽略:

看起来你的帖子大部分都是代码;请添加更多细节。看起来你的帖子大部分都是代码;请添加更多细节。看起来你的帖子大部分都是代码;请添加更多细节。看起来你的帖子大部分都是代码;请添加更多细节。看起来你的文章大部分都是代码;

代码语言:javascript
复制
     public class PracticeClass5 
         {
              @Test
              public void LearningXMLSuite()  
    // Method 1
                  List<String> myarraylist1 = new ArrayList<String>();
                  myarraylist1.add("Oranges");
                  myarraylist1.add("Apples");
                  myarraylist1.add("Strawberries");
                  myarraylist1.add("Watermelon");
                  myarraylist1.add("Cantalope");
                  myarraylist1.add("Berries");
                  myarraylist1.add(6, "banannas");

for (int i=0; i< myarraylist1.size(); i++)
          {
              System.out.println("Fruits " + i +" = " +myarraylist1.get(i));
          }
          System.out.println();


          ListIterator<String> myitr1 = myarraylist1.listIterator();
          myitr1.add("TREEEEEEEEEEEES"); 




 for (int i=0; i< myarraylist1.size(); i++)
              {
                  System.out.println("After adding " + i +" = " +myarraylist1.get(i));
              }
              System.out.println();



              /// does not work
              while (myitr1.hasNext())
              {
                  System.out.println("List Iterator forward " +myitr1.next());
              }



              System.out.println();

              while (myitr1.hasPrevious())
              {
                  System.out.println("List Iterator backward " +myitr1.previous());
              }

              System.out.println();


            }
        }




**Output**
    Fruits 0 = Oranges  
    Fruits 1 = Apples  
    Fruits 2 = Strawberries  
    Fruits 3 = Watermelon  
    Fruits 4 = Cantaloupe    
    Fruits 5 = Berries  
    Fruits 6 = bananas    

    After adding 0 = TREEEEEEEEEEEES  
    After adding 1 = Oranges    
    After adding 2 = Apples   
    After adding 3 = Strawberries    
    After adding 4 = Watermelon  
    After adding 5 = Cantalope  
    After adding 6 = Berries  
    After adding 7 = bananas  

    List Iterator forward Oranges    
    List Iterator forward Apples  
    List Iterator forward Strawberries  
    List Iterator forward Watermelon  
    List Iterator forward Cantaloupe  
    List Iterator forward Berries  
    List Iterator forward bananas  


    List Iterator backward bananas  
    List Iterator backward Berries  
    List Iterator backward Cantaloupe  
    List Iterator backward Watermelon  
    List Iterator backward Strawberries  
    List Iterator backward Apples  
    List Iterator backward Oranges  
    List Iterator backward TREEEEEEEEEEEES  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 05:55:00

因为迭代器在添加元素时不会向前移动。你有一个列表:

代码语言:javascript
复制
"Oranges"   "Apples"   "Strawberries"   ...

当你调用myarraylist1.listIterator()时,迭代器被创建了,它的'current‘(光标)位置被设置为恰好在"Oranges"之前,如下所示:

代码语言:javascript
复制
                         "Oranges"   "Apples"   "Strawberries"  ...
//Iterator points here ^    

然后使用myitr1.add("TREEEEEEEEEEEES")将一个项目添加到前面,但是迭代器的光标不会移动,因此看起来是这样的:

代码语言:javascript
复制
     "TREEEEEEEEEEEES"   "Oranges"   "Apples"   "Strawberries"  ...
//Iterator points here ^    

如果在while (myitr1.hasNext())循环之前调用myitr1.previous(),它将返回一个元素,并指向您想要的位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62052913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档