ludovica.cannas ha scritto:
Come si risolve?
Se, per dire come esempio, il numero di Set fosse 3 fisso, l'equivalente "strutturale" con for annidati sarebbe tecnicamente:
for (i = 0; i < list_of_set.get(0).size(); i++) {
for (j = 0; j < list_of_set.get(1).size(); j++) {
for (k = 0; k < list_of_set.get(2).size(); k++) {
// crea combinazione
}
}
}
Siccome però il numero di Set nel List in ingresso è arbitrario, la soluzione "strutturale" con for annidati non è possibile. Ma si può renderla generica e arbitraria semplicemente tenendo una lista di indici e facendoli "progredire" proprio come farebbero i for annidati.
Con i 3 set che hai mostrato come esempio dovresti avere un array di 3 int e generando le combinazioni:
0 0 0
1 0 0
0 1 0
1 1 0
P.S. tieni comunque presente che i Set sono solo iterabili ... non "indirizzabili per indice".
P.S.(2) L'algoritmo che ti ho indicato è l'approccio "iterativo". Ma esiste anche l'approccio "ricorsivo". Non so se hai avuto indicazioni o preferenze a riguardo. L'approccio ricorsivo potrebbe però risultare un po' contorto ... dovrei provarci per valutarlo, appena ho tempo.