Buenas, a continuación os dejo otro ejercicio, el CU00678B del taller práctico de programación en Java. Decir que este ejercicio me ha costado mucho trabajo ya que encontrarle la lógica a lo que había de programar para que se realizase "ufff", pero todo sea dicho, creo que me ha ayudado bastante a entender mejor como funcionan algunas funciones.
import java.util.*;
public class Lista {
    
        public static void main (String [] args) {
         ArrayList <Set> lista = new ArrayList <Set>();
         HashSet<String> lista1 = new HashSet();
         lista1.add ("sol");
         lista1.add ("luna");
         lista1.add ("saturno");
         TreeSet<Integer> lista2 = new TreeSet();
         lista2.add (2);
         lista2.add (8);
         lista2.add (5);
         lista.add (lista1);
         lista.add (lista2);
         Iterator <Set> it1 = lista.iterator();
         
         while (it1.hasNext()) {  
             Set itemp = it1.next();
             Iterator <Set> it2 = itemp.iterator();
             
             while (it2.hasNext()) {
                 System.out.println ( it2.next());
                }
            }  
        }
    }
         
    
Como siempre agradecer vuestra ayuda, ya que sin las correcciones hechas a la gente que lo intentó antes que yo, creo que no habría podido llevar a cabo este ejercicio, GRACIAS
Saludos