Mehrdimensionale ArrayList in Java

1. Übersicht

Das Erstellen einer mehrdimensionalen ArrayList wird häufig während der Programmierung angezeigt . In vielen Fällen muss eine zweidimensionale ArrayList oder eine dreidimensionale ArrayList erstellt werden .

In diesem Tutorial wird erläutert, wie Sie eine mehrdimensionale ArrayList in Java erstellen .

2. Zweidimensionale ArrayList

Angenommen, wir möchten einen Graphen mit 3 Eckpunkten darstellen, die von 0 bis 2 nummeriert sind. Nehmen wir außerdem an, dass der Graph (0, 1), (1, 2) und (2, 0) 3 Kanten enthält, wobei ein Paar vorhanden ist von Eckpunkten repräsentiert eine Kante.

Wir können die Kanten in einer 2-D- ArrayList darstellen, indem wir eine ArrayList von ArrayList s erstellen und füllen .

Lassen Sie uns zunächst eine neue 2-D- ArrayList erstellen :

int vertexCount = 3; ArrayList
    
      graph = new ArrayList(vertexCount);
    

Als Nächstes initialisieren wir jedes Element von ArrayList mit einer anderen ArrayList :

for(int i=0; i < vertexCount; i++) { graph.add(new ArrayList()); }

Schließlich können wir alle Kanten (0, 1), (1, 2) und (2, 0) zu unserer 2D - ArrayList hinzufügen :

graph.get(0).add(1); graph.get(1).add(2); graph.get(2).add(0);

Nehmen wir auch an, dass unser Graph kein gerichteter Graph ist. Daher müssen wir auch die Kanten (1, 0), (2, 1) und (0, 2) zu unserer 2D - ArrayList hinzufügen :

graph.get(1).add(0); graph.get(2).add(1); graph.get(0).add(2);

Um dann den gesamten Graphen zu durchlaufen, können wir eine doppelte for-Schleife verwenden:

int vertexCount = graph.size(); for (int i = 0; i < vertexCount; i++) { int edgeCount = graph.get(i).size(); for (int j = 0; j < edgeCount; j++) { Integer startVertex = i; Integer endVertex = graph.get(i).get(j); System.out.printf("Vertex %d is connected to vertex %d%n", startVertex, endVertex); } }

3. Dreidimensionale ArrayList

Im vorherigen Abschnitt haben wir eine zweidimensionale ArrayList erstellt. Erstellen wir nach der gleichen Logik eine dreidimensionale ArrayList :

Nehmen wir an, wir möchten einen 3D-Raum darstellen. Jeder Punkt in diesem 3D-Raum wird also durch drei Koordinaten dargestellt, z. B. X, Y und Z.

Stellen wir uns außerdem vor, dass jeder dieser Punkte eine Farbe hat, entweder Rot, Grün, Blau oder Gelb. Jetzt kann jeder Punkt (X, Y, Z) und seine Farbe durch eine dreidimensionale ArrayList dargestellt werden.

Nehmen wir zur Vereinfachung an, wir erstellen einen (2 x 2 x 2) 3D-Raum. Es hat acht Punkte: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0) und (1, 1, 1).

Initialisieren wir zunächst die Variablen und die 3-D- ArrayList :

int x_axis_length = 2; int y_axis_length = 2; int z_axis_length = 2; ArrayList
    
     > space = new ArrayList(x_axis_length);
    

Initialisieren wir dann jedes Element von ArrayList mit ArrayList ::

for (int i = 0; i < x_axis_length; i++) { space.add(new ArrayList
    
     (y_axis_length)); for (int j = 0; j < y_axis_length; j++) { space.get(i).add(new ArrayList(z_axis_length)); } }
    

Jetzt können wir Punkten im Raum Farben hinzufügen. Fügen wir für die Punkte (0, 0, 0) und (0, 0, 1) die rote Farbe hinzu:

space.get(0).get(0).add(0,"Red"); space.get(0).get(0).add(1,"Red");

Dann setzen wir die blaue Farbe für die Punkte (0, 1, 0) und (0, 1, 1):

space.get(0).get(1).add(0,"Blue"); space.get(0).get(1).add(1,"Blue");

Ebenso können wir weiterhin Punkte im Raum für andere Farben füllen.

Beachten Sie, dass bei einem Punkt mit Koordinaten (i, j, k) die Farbinformationen im folgenden 3D - ArrayList- Element gespeichert sind :

space.get(i).get(j).get(k) 

Wie wir in diesem Beispiel gesehen haben, der Raum ist variabel ein Arraylist . Außerdem ist jedes Element dieser ArrayList eine 2-D- ArrayList (ähnlich wie in Abschnitt 2).

Beachten Sie, dass der Index der Elemente in unserem Raum ArrayList die X-Koordinate darstellt, während jede an diesem Index vorhandene 2D - ArrayList die (Y, Z) -Koordinaten darstellt.

4. Fazit

In diesem Artikel haben wir erläutert, wie Sie eine mehrdimensionale ArrayList in Java erstellen . Wir haben gesehen, wie wir ein Diagramm mit einer 2-D- ArrayList darstellen können . Darüber hinaus haben wir untersucht, wie 3D- Raumkoordinaten mithilfe einer 3D - ArrayList dargestellt werden können .

Beim ersten Mal haben wir eine ArrayList von ArrayList verwendet, beim zweiten Mal haben wir eine ArrayList von 2-D ArrayList verwendet . Um eine N-dimensionale ArrayList zu erstellen , können wir dasselbe Konzept erweitern.

Die vollständige Implementierung dieses Tutorials finden Sie auf GitHub.