ArrayDeque中的迭代器

时间:2016-12-11 17:28:59

标签: java arraydeque

如何将其更改为ArrayDeque。我试着这样做,但它给了我一个Iterator错误。谢谢你的帮助。

void insert(List<String> l) {
    ListIterator<String> iter = l.listIterator();
    int i = 0;
    while (iter.hasNext()) {
        iter.next();
        if (i % 2 != 0) 
           iter.add("b");
        i++;
    }
} 

3 个答案:

答案 0 :(得分:0)

以下代码将帮助您遍历ArrayDeque Elements:

 import java.util.*;

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

            ArrayDeque<String> queue = new ArrayDeque<String>();
            queue.add("A");
            queue.add("B");
            queue.add("C");
            queue.add("D");
            Iterator itr = queue.iterator();
       System.out.println("The Deque elements Iterate trough iterator : ");
            while (itr.hasNext()) {
                    System.out.println(itr.next());

            }
    }
}

答案 1 :(得分:-1)

使用更通用的ListIterator方法,而不是使用listIteratorList方法,它只适用于iterator接口的实现,而不是Iterator<E>方法。存在于Collection接口的所有实现,包括ArrayDeque

void insert(ArrayDeque<String> deque) {
    Iterator<String> iter = deque.iterator();
    int i = 0;
    while (iter.hasNext() {
        iter.next();
        if (i % 2 != 0) deque.add("b");
        i++
    }
}

答案 2 :(得分:-1)

这只是@Shadowfacts的更新版本

void insert(ArrayDeque<String> deque) {
Iterator<String> iter = deque.iterator();
int i = 0;
while (iter.hasNext() {
    iter.next();
    if (i % 2 != 0) deque.add("b");
    i++
   }
}