W związku z niespodziewaną popularnością i bardzo gorącym przyjęciem nowego serwisu, postanowiłem – wyjątkowo – dodać kolejnego Puzzle’a, zanim poprzedni zostanie rozwiązany.

  • Co pojawi się na ekranie po uruchomieniu poniższego kodu?
import java.util.HashSet;
import java.util.Set;

public class ShortSet {

  public static void main(String[] args) {
    Set<Short> s = new HashSet<Short>();
    for (short i = 0; i < 100; i++) {
      s.add(i);
      s.remove(i - 1);
    }
    System.out.println(s.size());
  }
}


Odpowiedzi:
(a) 1
(b) 100
(c) zostanie rzucony wyjątek
(d) żadne z powyższych

  • Odpowiedź uzasadnij i wyjaśnij dlaczego tak to działa
  • Jak poprawić powyższy kod, aby zachowywał się zgodnie z intuicją

Autorami zagadki są Joshua Bloch i William Pugh