Sobes.tech
Назад к вопросам
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");
    }
}

Этот итератор сначала перебирает элементы из первого итератора, затем из второго, объединяя их в один поток элементов.