Я изучаю программирование и плохо знаком с этой областью, поскольку у меня есть механическое образование.Вчера я получил постановку проблемы от проф.где он предоставил нам пользовательский итератор, который предназначен для альтернативной итерации по заданным элементам.
Альтернативный код итератора выглядит следующим образом.
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
public class AlternatingIterator<E> implements Iterator{
private final Queue<E> queue = new LinkedList<>();
public AlternatingIterator(Iterator<E> ... iterators) {
for(Iterator<E> iterator : iterators) {
while(iterator.hasNext())
queue.add(iterator.next());
}
}
@Override
public boolean hasNext() {
return queue.isEmpty() ? false : true;
}
@Override
public Object next() {
return queue.poll();
}
}
Теперь AlternatingIterator должен чередоваться по порядку между итераторами.он получает в своем конструкторе.Например, если построено с тремя итераторами [a, b, c], [1,2] и [x, y, z], итератор должен создавать элементы в следующем порядке: a, 1, x, b, 2, y, c, z '
Также мне нужно написать модульные тесты для методов hasNext и next.
Можем ли мы реализовать любую другую структуру данных, кроме очереди?
Я полностью взволнован и устал понимать, как решить эту проблему, но очень смущен здесь.Если вы, ребята, можете мне помочь, тогда я могу очень быстро выучить важную концепцию.
Заранее спасибо, и любая помощь приветствуется.