SetAz teljesen okés hogy az i-1 kifejezés int-re értékelődik ki, ezért Integer-re autoboxolódik, de ezt lehet tudni és ha azt is tudjuk hogy a s setben Short-okat tartunk, akkor ott nem kellene Integer-t keresni. De kipróbáltam eclipse-ben (3.3), nem mond rá semmit, az is teljesen logikus hogy miért nem. Azért mert a Set.remove metódus argumentuma Object, nem pedig a paraméterezett típus. Ha nem így lenne, lehetne errorozni és warningolni rá, de mégis így van, teljesen logikus okból: azért mert akkor törli ha az equals metódus azt mondja, az pedig fogadhat bármit, régi mese.s = new HashSet ();
...
s.remove(i-1);
Azért vicces, szerintem. Valahogy az IDE-knek mégis warningolnia kellene ilyen eseteken, bár a metódusok paraméterezése helyes, talán warningolni kellene ha Set-ből nem a paraméterezett típusú objektumot próbálja a kód törölni. Csak néha feleslegesen warningolna és ezért mindenki figyelmen kívül hagyná :-(