Eventuali duplicati:
What are the reasons why Map.get(Object key) is not (fully) generic
Why does Java's TreeSet<E> remove(Object) not take an EPerché HashSet <E> non limitare il tipo di argomento per E in contiene() e rimuovere()
Perché HashSet non limita il tipo di argomento a E qui:
public boolean contains(Object o)
public boolean remove(Object o)
come avviene per add()
public boolean add(E e)
intendo se il compilatore è far rispettare che solo oggetti di tipo E sono stati aggiunti, allora l'insieme non può contenere/rimuovere qualsiasi altro tipo
'add' aggiunge nuovo elemento alla lista quindi è necessario assicurarsi che sia il tipo giusto. –