Posts Tagged ‘Iterator’

Zagadka z Iteratorem

Ciekawa zagadka znaleziona w sieci. Należy tak poprawić poniższy kod, aby na ekranie wyświetlił się napis Hello World. Oczywiście wyjątek ConcurrentModificationException (ani żaden inny) nie może się pojawić. Pozostałe obostrzenia to:

  • w żaden sposób nie wolno modyfikować kodu poza sekcją FIXME
  • nie wolno użyć refleksji
  • cały poniższy kod musi się wykonać; nie można użyć System.exit(0) lub return
public class IteratorPuzzle {

	public static void main(String[] args) {
		final List list = new ArrayList() {{ add("Hello"); }};
		final Iterator iterator = list.iterator();
		System.out.print(iterator.next());
		list.add("World");
		// FIXME: tutaj dopisujemy kod
		System.out.println(" " + iterator.next());
	}
}

Powodzenia:)