Hola, lo primero, cuando vayas a pegar código usa el icono # que aparece en el editor por favor. Pulsas el # y te aparecen las etiquetas [ code ] ... [ / code] y pegas el código entre estas dos etiquetas.
Sobre el ejercicio: has llegado a "prácticamente" la solución. Como dices, la idea es recorrer cada uno de los elementos, no simplemente hacer un print que muestre todos los elementos en su conjunto.
Te doy la idea para que intentes resolverlo por tí mismo, si ves que se te complica mira el código que te pongo más abajo.
La idea: estás haciendo un recorrido del ArrayList gracias a un iterator que recorre sus elementos. Pero a su vez cada elemento del ArrayList consta de elementos. ¿Cómo recorrerlos? Introduciendo un nuevo iterador, es decir, tendrías un iterador que te va recorriendo los elementos del arraylist y tendrías otro iterador que te va recorriendo cada uno de los elementos dentro del arrayList. Estás anidando un recorrido dentro de otro. A cada iterador le debes poner un nombre distinto, por ejemplo it1 e it2.
Código:
import java.util.HashSet;
import java.util.ArrayList;
import java.util.TreeSet;
import java.util.Set;
import java.util.Iterator;
public class testCU00678B {
public testCU00678B() { }
public static void main (String[] Args) {
System.out.println ("Comienza el programa");
ArrayList<Set> listaObjetos;
HashSet<String> objetosHash;
objetosHash = new HashSet<String>();
objetosHash.add("sol");
objetosHash.add("luna");
objetosHash.add("saturno");
TreeSet<Integer> objetosTree;
objetosTree = new TreeSet<Integer>();
objetosTree.add(2);
objetosTree.add( 8) ;
objetosTree.add(5);
listaObjetos = new ArrayList<Set>();
listaObjetos.add(objetosHash);
listaObjetos.add(objetosTree);
Iterator<Set> it1 = listaObjetos.iterator();
while(it1.hasNext())
{
Set objetoSet = it1.next();
System.out.print ("Conjunto set contiene: " );
Iterator<Set> it2 = objetoSet.iterator();
while (it2.hasNext()){
System.out.print ("Elemento: " + it2.next() +", ");
}
System.out.println("");
}
}
}
Saludos.