2D Array mit unterschiedlicher länge befüllen?
public static void main(String[] args) {
//Array mit unterschiedlichen Längen,
int[][] d = new int[4][];
for(int i = 3; i >=0; i--) {
d[i] = new int[i];
// 1.Zeile 4 Elemente
// 2.Zeile 3 Elemente
// 3.Zeile 2 Elemente
// 4.Zeile 1 Elemente
}
for (int i = 0; i<d.length; i++){
for (int j = 0; j<d[i].length; j++){
d[i][j] = 0;
System.out.print(d[i][j] + " ");
}
System.out.println();
}
Also ich will einfach das Array vollschreiben, mit 0 überall.
Aber irgendwie versteh ich nich wo das Prob is.
Ich hüpfe in die erste Zeile, dann in die 1. Spalte der ersten zeile, ...., dann in die 4. Spalte der ersten Zeile, fertig Ausgabe, ab in die zweite Zeile.
Aber ich bekomme Nullpointerexception.
3 Antworten
int[][] d = new int[4][4];
Du musst schon beides instanzieren.
Genaueres guckst du hier: https://stackoverflow.com/questions/12231453/syntax-for-creating-a-two-dimensional-array
So geht es
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] intArr = new int[4][4];
for(int x = 0; x < intArr.length; x++) {
for(int y = 0; y < intArr[x].length; y++) {
System.out.print(intArr[x][y]);
}
System.out.println();
}
}

https://en.wikipedia.org/wiki/Jagged_array
Um dem Kind mal einen Namen zu geben.
Meine Implementierung dazu steht weiter unten und deckt sich halbwegs mit deiner. Bei mir kommt keine Fehlermeldung ;)
int[][] test = new int[4][];
for(int i=0;i<test.length;i++){
test[i] = new int[i+1];
}
for(int i=0;i<test.length;i++){
for(int j=0;j<test[i].length;j++){
System.out.print(test[i][j]);
}
System.out.println();
}
Dein Fehler liegt an folgender Stelle:
d[i] = new int[i];
Du gehst von 3 bis 0 und hast somit eine Verschiebung um 1.
d[i] = new int[i+1];
Das sollte es korrigieren.
Hm danke, :O Aber dann sage ich ja, das ist eine 4x4 Matrix, und dann werden die Spalten neu konfiguriert?