Sobes.tech
Middle
62

Įgyvendinkite CompositeIterator naudodami generikus, kuris sujungia du to paties tipo iteratorius

Įmonės kur klausė
СБЕРСБЕР

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

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