Yo si me voy a volver "Poliamorfico", como se siga complicando la cosa!!!

Pongo mi solución.... me ha costado un verano pero, me da el resultado que pedíais:
import java.util.ArrayList;
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator;
public class CU00678B_poliformismo
{
public CU00678B_poliformismo()
{ }
public static void main (String [] args){
HashSet <String> miHashSet = new HashSet <String> ();
TreeSet <Integer> miTreeSet = new TreeSet <Integer> ();
ArrayList <Set> miArraySet = new ArrayList <Set> ();
miHashSet.add ("sol");
miHashSet.add ("luna");
miHashSet.add ("saturno");
miTreeSet.add (2);
miTreeSet.add (8);
miTreeSet.add (5);
miArraySet.add(miHashSet);
miArraySet.add(miTreeSet);
Iterator <Set> miIterator = miArraySet.iterator();
while (miIterator.hasNext()){ System.out.println (miIterator.next()); }
}
}