Raziel84 ha scritto:
Creata una matrice da input (quindi di qualsiasi dimensione, anche irregolare) devo combinare gli elementi di ogni riga con quelli delle righe successive.
Devo creare un metodo sia iterativo che ricorsivo
Esistono sicuramente più soluzioni per entrambi gli approcci.
Riguardo le soluzioni iterative, una che a me piace è quella di trattare la progressione delle combinazioni come un "sistema di numerazione".
String[][] m = {
{"A", "B"}, // indici 0, 1
{"1", "2", "3"}, // indici 0, 1, 2
{"X", "Y"}, // indice 0, 1
};
quindi un int[3] (3, il numero di righe di m) per i 3 indici. E poi fai progredire gli indici così:
{0,0,0}
{0,0,1}
{0,1,0}
{0,1,1}
....
{1,2,1}
Per ciascun gruppo, dagli indici ricavi i valori. Questa logica si può anche incapsulare bene in una classe per gestirla a mo' di "iteratore" (ovvero, ottenere la prossima combinazione ad ogni "next").
P.S. prima hai scritto {"1"}, {"2"}, ma credo sia sbagliato! Così hai 5 righe.