2016-12-11 2 views
-3

Как изменить это на ArrayDeque. Я пытался это сделать, но это дает мне ошибку Iterator. Спасибо за помощь.Итератор в 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

Вместо использования ListIterator и метод listIterator которые работают только для реализаций интерфейса 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 (string) задан для типа итератора 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++ 
    } 
}