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ď č. 1Od 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);