Buenos días,
tras estar batallando 3 horas con el código, buscando información y usando el debugger he desistido.
Ayuda!!

.
Me he fijado que los valores que añado a las diferentes listas se añaden aleatoriamente en la posición de la lista por lo que al recorrerlas con el for each y los iteradores, se muestran tal cual se han añadido en la posición de la lista.
Dejo el ejercicio:
La interface Set de Java es implementada por las clases HashSet y TreeSet. Busca información sobre estas clases en la documentación del api Java. Crea un programa Java que haga lo siguiente:
a) Declarar un ArrayList de objetos de tipo Set.
b) Crear un objeto de tipo HashSet para contener Strings y haz que contenga las cadenas “sol”, “luna”, “saturno”.
c) Crear un objeto TreeSet para contener Integers y haz que contenga los números 2, 8, 5.
d) Añade los objetos HashSet y TreeSet como elementos del ArrayList.
e) Usa iteradores para recorrer los elementos del ArrayList y recorrer el contenido de cada uno de los elementos y mostrar este contenido por pantalla. Por pantalla deberás obtener “sol”, “luna”, “saturno”, 8, 5, 2.
CÓDIGO:
public class Test78
{
public static void main(String[] args){
ArrayList<Set> arraySet = new ArrayList<Set>();
HashSet<String> hashString = new HashSet<String>();
hashString.add("sol");
hashString.add("luna");
hashString.add("saturno");
TreeSet<Integer> treeInteger = new TreeSet<Integer>();
treeInteger.add(2);treeInteger.add(8);treeInteger.add(5);
arraySet.add(hashString);arraySet.add(treeInteger);
for(Set tmpSet:arraySet){
Iterator iterator = tmpSet.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
}
Lo que me imprime por pantalla es: luna, saturno, sol, 2, 5, 8.
Muchas gracias, atentamente.