#224 Итератор для последовательного обхода двух коллекций
Реализовать класс IteratorBoth, который перебирает элементы из двух наборов данных.
Он должен последовательно перебирать элементы из первого Iterable, а затем, когда он закончится, переключиться на второй Iterable.
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;
}
}
}Разбор вопроса
Войди, чтобы начать диалог
Ментор ведёт диалог по текущему вопросу и учитывает предыдущие сообщения.
Войти
Доступно с Premium
Это лишь одно из решений, доступных с Premium. А ещё:
- 250+ продвинутых лекций
- 1300+ практических заданий
- 500+ решений задач с реальных собеседований
- Именные сертификаты Java Hub
- Расширенный доступ к AI-ментору