Назад к вопросам
СБЕР
Middle
6
Реализуй CompositeIterator с использованием дженериков, который объединяет два итератора одного типа
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Ниже пример реализации CompositeIterator на Java с использованием дженериков, который объединяет два итератора одного типа T:
import java.util.Iterator;
import java.util.NoSuchElementException;
public class CompositeIterator<T> implements Iterator<T> {
private final Iterator<T> first;
private final Iterator<T> second;
public CompositeIterator(Iterator<T> first, Iterator<T> second) {
this.first = first;
this.second = second;
}
@Override
public boolean hasNext() {
return first.hasNext() || second.hasNext();
}
@Override
public T next() {
if (first.hasNext()) {
return first.next();
} else if (second.hasNext()) {
return second.next();
} else {
throw new NoSuchElementException();
}
}
@Override
public void remove() {
throw new UnsupportedOperationException("Remove not supported");
}
}
Этот итератор сначала перебирает элементы из первого итератора, затем из второго, объединяя их в один поток элементов.