List Iterator 的 add() 方法对迭代器做了什么?

What does List Iterator#39;s add() method do to the iterator?(List Iterator 的 add() 方法对迭代器做了什么?)
本文介绍了List Iterator 的 add() 方法对迭代器做了什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我希望能够使用 ListIterator 将元素插入到 ArrayList<String>,但不知何故,即使在阅读了与 add 方法相关的文档后,我还是感到困惑ListIterator 类,如果我做这样的事情

I want to be able to insert elements to the ArrayList<String> using ListIterator, but somehow I am confused even after reading the documentation related to the add method of the ListIterator class, if I do something like this

for(int i = 0 ; i < list.size() ; ++i)
   listIterator.add( list.get(i) );

这段代码片段对我的列表迭代器做了什么,它将列表迭代器移动到哪里?

What does this code snippet do to my list iterator, where does it move the list iterator?

当我运行以下代码时,我得到的结果是Hi"-:

When I run the following code I get the result as "Hi" -:

import java.util.ArrayList;
import java.util.ListIterator;

public class ListIter {
    public static void main(String[] args) {

        String[] s = {"Hi", "I", "am", "Ankit"};

        ArrayList<String> list = new ArrayList<>();
        ListIterator<String> listIterator = list.listIterator();

        for (int i = 0; i < s.length; ++i) {
            listIterator.add(s[i]);
        }

        while (listIterator.hasPrevious()) {
            listIterator.previous();
        }

        System.out.println(listIterator.next());
    }
}

请问这个输出是怎么产生的?

Kindly tell how is this output being generated?

推荐答案

你没有正确使用迭代器.使用迭代器的正确方法是使用迭代器本身而不是索引来遍历列表.

You are not using iterator properly. The correct way using iterators is traverse the list with the iterator itself rather than by index.

ListIterator<SomeObject> listIterator = list.listIterator();

while(listIterator.hasNext()){
  SomeObject o = listIterator.next();
  listIterator.add(new SomeObject());
}

阅读 ListIterator#添加()

一个简单的例子:

public static void main(String args []){      
        List<String> list= new ArrayList<String>();
        list.add("hi");
        list.add("whats up");
        list.add("how are you");
        list.add("bye");

        ListIterator<String> iterator = list.listIterator();
        int i=0;
        while(iterator.hasNext()){
            iterator.next();
            iterator.add(Integer.toString(i++));                
        }

        System.out.println(list);
        //output: [hi, 0, whats up, 1, how are you, 2, bye, 3]

    }
 }

这篇关于List Iterator 的 add() 方法对迭代器做了什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

How to send data to COM PORT using JAVA?(如何使用 JAVA 向 COM PORT 发送数据?)
How to make a report page direction to change to quot;rtlquot;?(如何使报表页面方向更改为“rtl?)
Use cyrillic .properties file in eclipse project(在 Eclipse 项目中使用西里尔文 .properties 文件)
Is there any way to detect an RTL language in Java?(有没有办法在 Java 中检测 RTL 语言?)
How to load resource bundle messages from DB in Java?(如何在 Java 中从 DB 加载资源包消息?)
How do I change the default locale settings in Java to make them consistent?(如何更改 Java 中的默认语言环境设置以使其保持一致?)