ArrayList multidimensionale in Java

1. Panoramica

La creazione di un ArrayList multidimensionale viene spesso visualizzata durante la programmazione. In molti casi, è necessario creare un ArrayList bidimensionale o un ArrayList tridimensionale .

In questo tutorial, discuteremo come creare un ArrayList multidimensionale in Java.

2. ArrayList bidimensionale

Supponiamo di voler rappresentare un grafo con 3 vertici, numerati da 0 a 2. Inoltre, supponiamo che ci siano 3 archi nel grafo (0, 1), (1, 2) e (2, 0), dove una coppia di vertici rappresenta un bordo.

Possiamo rappresentare i bordi in un ArrayList 2-D creando e popolando un ArrayList di ArrayList s.

Per prima cosa, creiamo un nuovo ArrayList 2-D :

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

Successivamente, inizializzeremo ogni elemento di ArrayList con un altro ArrayList :

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

Infine, possiamo aggiungere tutti i bordi (0, 1), (1, 2) e (2, 0), al nostro ArrayList 2-D :

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

Supponiamo anche che il nostro grafico non sia un grafico diretto. Quindi, dobbiamo anche aggiungere i bordi (1, 0), (2, 1) e (0, 2), al nostro ArrayList 2-D :

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

Quindi, per scorrere l'intero grafico, possiamo usare un ciclo double for:

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. Elenco di array tridimensionali

Nella sezione precedente, abbiamo creato un ArrayList bidimensionale . Seguendo la stessa logica, creiamo un ArrayList tridimensionale :

Supponiamo di voler rappresentare uno spazio 3-D. Quindi, ogni punto in questo spazio 3-D sarà rappresentato da tre coordinate, diciamo, X, Y e Z.

In aggiunta a ciò, immaginiamo che ciascuno di questi punti avrà un colore, rosso, verde, blu o giallo. Ora, ogni punto (X, Y, Z) e il suo colore possono essere rappresentati da un ArrayList tridimensionale .

Per semplicità, supponiamo di creare uno spazio 3-D (2 x 2 x 2). Avrà otto punti: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0) e (1, 1, 1).

Inizializziamo prima le variabili e 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);
    

Quindi inizializziamo ogni elemento di ArrayList con 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)); } }
    

Ora possiamo aggiungere colori ai punti nello spazio. Aggiungiamo il colore rosso per i punti (0, 0, 0) e (0, 0, 1):

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

Quindi, impostiamo il colore blu per i punti (0, 1, 0) e (0, 1, 1):

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

Allo stesso modo, possiamo continuare a popolare i punti nello spazio per altri colori.

Si noti che un punto con coordinate (i, j, k) ha le informazioni sul colore memorizzate nel seguente elemento ArrayList 3-D :

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

Come abbiamo visto in questo esempio, la variabile space è un ArrayList . Inoltre, ogni elemento di questo ArrayList è un 2-D ArrayList (simile a quanto visto in sezione 2).

Si noti che l'indice degli elementi nel nostro spazio ArrayList rappresenta la coordinata X, mentre ogni 2-D ArrayList , presente in quell'indice, rappresenta le coordinate (Y, Z).

4. Conclusione

In questo articolo, abbiamo discusso come creare un ArrayList multidimensionale in Java. Abbiamo visto come possiamo rappresentare un grafico usando un ArrayList 2-D . Inoltre, abbiamo anche esplorato come rappresentare le coordinate spaziali 3-D utilizzando un 3-D ArrayList .

La prima volta abbiamo utilizzato un ArrayList di ArrayList, mentre la seconda volta abbiamo utilizzato un ArrayList di 2-D ArrayList . Allo stesso modo, per creare un ArrayList N-Dimensional , possiamo estendere lo stesso concetto.

L'implementazione completa di questo tutorial può essere trovata su GitHub.