-3

如何将其更改为 ArrayDeque。我试图这样做,但它给了我一个迭代器错误。感谢帮助。

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++;
    }
} 
4

3 回答 3

1

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

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

            }
    }
}
于 2016-12-11T17:35:46.710 回答
-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++
   }
}
于 2016-12-11T17:59:32.977 回答
-1

不要使用ListIteratorandlistIterator仅适用于List接口实现的方法,而是使用更通用的iterator方法,该方法返回Iterator<E>存在于Collection接口的所有实现中的 an ,包括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++
    }
}
于 2016-12-11T17:41:18.647 回答