2012-04-22 5 views
9

Unsere Hausaufgabe erfordert die Verwendung eines gezackten Arrays zum Speichern der Werte einer zweidimensionalen booleschen Matrix. Gibt es eine eingebaute Java-Klasse für das gezackte Array oder muss ich es manuell mit einem Array von ArrayLists erstellen?Java Jagged Array

Antwort

16

In Java ist ein 2D-Array ein Array von 1D-Array-Objekten. Jedes 1D-Array kann eine unterschiedliche Länge haben, was bedeutet, dass Sie gezackte Arrays aus der Box erhalten.

Zum Beispiel ist die folgende absolut gültige Java und 3 5 3 4 ausdruckt:

int x[][] = {{0,1,2,3,4},{0,1,2},{0,1,2,3}}; 
    System.out.println(x.length); 
    System.out.println(x[0].length); 
    System.out.println(x[1].length); 
    System.out.println(x[2].length); 
+0

Also, wenn ich mehr Elemente zu diesen einzelnen Arrays hinzufügen muss, würde ich zum Beispiel die Größe x [1] anstelle von nur x ändern? –

+1

@Chris: Ja. Zum Beispiel 'x [1] = Arrays.copyOf (x [1], newLength);' – NPE

0

Es klingt tatsächlich wie Sie eine spärliche Matrix Implementierung wollen könnte. Sie können eine viel bessere Leistung daraus erhalten, wenn Sie die Matrix ändern müssen. Array-Kopiervorgänge sind ziemlich teuer. Sparse matrices/arrays in Java