Vero. M'era completamente passato di mente ed ho postato il codice senza provarlo.
In effetti i generics applicati agli array sono una brutta bestia (anche le Collection create dai programmatori della Sun non riecono ad aggirare il problema, visto che toArray restituisce un Object[] invece che un T[] anche quando sono tipizzate).
O restituisci un Object[], oppure provi a prendere in considerazione una strada alternativa, come restituire un iteratore oppure un'astrazione di array tipo List<T>.
codice:
public Iterator<T> elementi(){
return c.iterator();
}
codice:
public static void main(String[] args) {
InsiemeHS <String> t = new InsiemeHS<String>();
t.aggiungi("simo");
t.aggiungi("qwerty");
Iterator<String> a = t.elementi();
while(a.hasNext()) System.out.println(a.next());
}