List迭代器的add()方法对迭代器做什么? [英] What does List Iterator's add() method do to the iterator?

查看:133
本文介绍了List迭代器的add()方法对迭代器做什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想能够使用 ListIterator ArrayList< String> 插入元素,即使在阅读与 ListIterator 类的add方法相关的文档之后,如果我这样做的话,也会感到困惑。

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

请告诉我们如何生成这个输出? p>

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#add()

一个简单的例如:

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()){
            String s = iterator.next();
            iterator.add(""+i++);

        }

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

    }
 }

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

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆