2016-12-11 46 views
-3

如何將其更改爲ArrayDeque。我試圖做到這一點,但它給了我一個迭代器錯誤。感謝幫助。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++; 
    } 
} 
+0

你到底想達到什麼目的? – Shay

+0

add do ArrayDeque爲一個循環到奇數位置字符串「b」 – user5631123

回答

0

這下面的代碼將幫助您通過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()); 

      } 
    } 
} 
+0

必須在循環 – user5631123

-1

而不是使用ListIteratorlistIterator方法,只爲List接口的實現工作的,使用更通用的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++ 
    } 
} 
+0

錯誤:方法add(字符串)是uden定義的類型迭代器 user5631123

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