#224 Итератор для последовательного обхода двух коллекций

Компании:
Mango Office
Темы:
JavaКоллекции и обобщенияПрактика

Реализовать класс IteratorBoth, который перебирает элементы из двух наборов данных. Он должен последовательно перебирать элементы из первого Iterable, а затем, когда он закончится, переключиться на второй Iterable.

Java
public class Main {
    public static void main(String[] args) {
        var iterableBoth = new IterableBoth<>(Set.of(1, 4, 2), List.of(10, 16, 11, 12, 12, 14, 16));
        iterableBoth.forEach(System.out::println);
    }

    @AllArgsConstructor
    private static class IteratorBoth<T> implements Iterator<T> {
        private Iterator<T> iterator1;
        private Iterator<T> iterator2;

        @Override
        public boolean hasNext() {
        }

        @Override
        public T next() {
        }
    }

    @RequiredArgsConstructor
    private static class IterableBoth<T> implements Iterable<T> {
        private final Iterable<T> iterable1;
        private final Iterable<T> iterable2;
        private IteratorBoth<T> iterator;

        @Override
        public Iterator<T> iterator() {
            if (iterator == null) {
                iterator = new IteratorBoth<>(iterable1.iterator(), iterable2.iterator());
            }
            return iterator;
        }
    }
}

Разбор вопроса

Ментор
Ответь как на реальном собеседовании. Я задам уточняющие вопросы, а затем сравню твой ответ с эталонным и покажу точность в %.
Войди, чтобы начать диалог Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти