Sobes.tech
Middle
94

Implementeer een CompositeIterator met behulp van generics die twee iterators van hetzelfde type combineert

Bedrijven waar gevraagd werd
СБЕРСБЕР

Antwoord van AI

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");
    }
}

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