Einzelnen Beitrag anzeigen
Ungelesen 23.11.14, 13:59   #1
Fre4krider
Fragger
 
Benutzerbild von Fre4krider
 
Registriert seit: Nov 2010
Ort: BW
Beiträge: 48
Bedankt: 11
Fre4krider ist noch neu hier! | 0 Respekt Punkte
Standard Warum muss ein neues Feld im zweidimensionalen Array erzeugt werden

Hi ich bin noch etwas grün hinter den Ohren was programmieren mit Java angeht und ich hab hier zwei Übungen und versteh nicht ganz warum man bei einer Methode immer erst ein neues Feld erzeugen muss um reinschreiben zu können und bei der anderen scheinbar nicht.

Code:
public static int [] [] pascal (int n) {
int [] [] p = new int [n] []; // Erste Zeile mit einer 1.
p[0] = new int [] { 1 }; // Weitere Zeilen.

for (int i = 1; i < n; i++) {   // Zeile mit i+1 Elementen erzeugen.
p[i] = new int [i+1];            // Randwerte mit 1 initialisieren.
p[i][0] = p[i][i] = 1;   // Übrige Werte aus darüberstehenden Werten berechnen.

for (int j = 1; j < i; j++) {
p[i][j] = p[i−1][j−1] + p[i−1][j];
}
}

return p;
}
p[i] = new int [i+1]; // Hier erzeuge ich ein neues Feld und schreibe gleich danach das Ergebnis aus der danach folgenden Rechnung rein. macht man das nicht bekommt man array out of bounds exception (was ja klar ist weil das feld in das man schreiben möchte nicht existiert)

Code:
String [] [] b = new String [n] [];
n=0;

for (int i = 0; i < a.length; i++) {
     if (isPartOf(s, a[i][a[i].length − 1])) {  //isPartOf vergleicht zwei Strings
     b[n++] = a[i];
}
}
return b;
}
b[n++] = a[i]; // Hier kann der Inhalt aus a an der Stelle i (zweidimensionales Feld) einfach in b geschrieben werden ohne b zu sagen wie viele Felder dafür benötigt werden.

Das verstehe ich nicht ganz warum man hier nicht auch erst neue Felder anlegen muss, vielleicht kann mir das jemand erklären danke =)
Fre4krider ist offline   Mit Zitat antworten