Что произойдет при выполнении следующиего кода ?

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;

public class Test<T> implements Iterator<T>{   // 1

    private List<T> list = new ArrayList<T>(); // 2

    public void addList(T... ts) {
        Collections.addAll(list, ts);          // 3
    }

    public static void main(String args[]) {
        Test<String> t  = new Test<String>();
        t.addList("Hello world");
        for (String str : t) {                 // 4
            System.out.print(str + " ");
        }
    }

    public Iterator<T> iterator() {
        return list.iterator();
    }

}
Explanation
Для реализации интерфейса Iterator требуется реализовать такие методы как hasNext(), next(), remove(), поэтому произойдет ошибка компиляции в строке 1. В for-each можно использовать массивы, коллекции и классы реализующие интерфейс Iterable, поэтому произойдет ошибка компиляции в строке 4. Для успешного выполнения кода нужно заменить интерфейс Iterator на Iterable.

Follow CodeGalaxy

Mobile Beta

Get it on Google Play
Send Feedback
Keep exploring
Java quizzes
Cosmo
Sign Up Now
or Subscribe for future quizzes