Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用ListIterator将元素添加到空列表中?_Java_List_Data Structures_Iterator - Fatal编程技术网

Java 如何使用ListIterator将元素添加到空列表中?

Java 如何使用ListIterator将元素添加到空列表中?,java,list,data-structures,iterator,Java,List,Data Structures,Iterator,我编写了以下代码,以便使用ListIterator将元素添加到空列表中: ArrayList<String> list = new ArrayList<String>(); ListIterator<String> listIterator = list.listIterator(); public void append(String... tokens) { if(tokens == null) return;

我编写了以下代码,以便使用ListIterator将元素添加到空列表中:

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

public void append(String... tokens) {

        if(tokens == null)
            return;

        // append tokens at the end of the stream using the list iterator
        for(int i = 0 ; i < tokens.length ; ++i){

            // if the token is not null we append it 
            if(tokens[i] != null && !tokens[i].equals(""))
                listIterator.add(tokens[i]);
        }

        reset();
    }
ArrayList list=new ArrayList();
ListIterator ListIterator=list.ListIterator();
公共无效附加(字符串…标记){
if(标记==null)
返回;
//使用列表迭代器在流的末尾追加标记
for(int i=0;i

我想使用listIterator将元素添加到这个空列表中,然后在添加所有元素之后,我想将迭代器移动到列表的开头,我还想能够删除迭代器指向的元素,因为某种原因,我的方法似乎不起作用,请帮忙。

也许我不理解你的问题,但似乎你真的想

list.add(tokens[i]);
而不是

listIterator.add(tokens[i]);

完成向迭代器添加项后,获取迭代器的新实例并重新开始。reset()方法应该做什么

除非修改正在循环的列表,否则将不会得到ConcurrentModificationException

也许这就是你要找的

    ArrayList<String> list = new ArrayList<String>();
    ListIterator<String> listIterator = list.listIterator();
    String[] tokens = {"test", "test1", "test2"};

    // append tokens at the end of the stream using the list iterator
    for (int i = 0; i < tokens.length; ++i) {

        // if the token is not null we append it
        if (tokens[i] != null && !tokens[i].equals(""))
            listIterator.add(tokens[i]);
    }

    while (listIterator.hasPrevious()) {
        if(listIterator.previous().toString().equals("test1")) {
            listIterator.remove();
        }
    }

    while (listIterator.hasNext()) {
        System.out.println(listIterator.next().toString());
    }
ArrayList list=new ArrayList();
ListIterator ListIterator=list.ListIterator();
字符串[]标记={“test”、“test1”、“test2”};
//使用列表迭代器在流的末尾追加标记
for(int i=0;i
实际上,我想使用listIterator向迭代器添加元素,以避免ConcurrentModificationException,这就是我使用listIterator的原因。您能更具体地说明什么不起作用吗?一个可能的错误(可能是故意的)是++i而不是i++。reset方法用于将迭代器设置为列表的开头它是否返回新的迭代器?如何重置它?while(listIterator.hasPrevious())listIterator.previous();