/ / Referenčná rekurzia poľa [uzavretá] - java, polia, rekurzia

Referencia referenčných polí [uzavretá] - java, polia, rekurzia

Mám problém s rekurziou 2D poľa. Malo by to vytlačiť

*
**
***
****
*****

ale dostanem len toto:

*****
*****
*****
*****
*****

Myslím si, že je to preto, že kedykoľvek zapisujem do rovnakého poľa a prepíšem staré výsledky. Tu je môj kód:

public class filleArrayRec {

public static void main(String[] args) {
String[][] array = new String[5][5];

fillArr(array, 0);

for (String[] i : array) {
for (String j : i) {
System.out.print(j);
}
System.out.println();
}
}

private static void fillArr(String[][] array, int index) {
if (index < array.length) {
array[index] = fillArrayLine(array[index], 0);
} else {
return;
}

fillArr(array, index+1);
}

private static String[] fillArrayLine(String[] array, int index) {
if (index < array.length) {
array[index] = "*";
} else {
return array;
}

return fillArrayLine(array, index+1);
}

}

odpovede:

0 pre odpoveď č. 1

Od inicializácie array s new String[5][5], všetky hovory fillArrayLine skončí okolo päťprvkového poľa, čím vyplní štvorec.

Nahraďte inicializáciu pomocou new String[5][], a nastavte array[i] as you go:

array[index] = fillArrayLine(new String[index+1], 0);