ArrayList multidimensionnelle en Java

1. Vue d'ensemble

La création d'une ArrayList multidimensionnelle apparaît souvent lors de la programmation. Dans de nombreux cas, il est nécessaire de créer deux dimensions ArrayList ou trois dimensions ArrayList .

Dans ce didacticiel, nous verrons comment créer une ArrayList multidimensionnelle en Java.

2. ArrayList bidimensionnel

Supposons que nous voulions représenter un graphe avec 3 sommets, numérotés de 0 à 2. De plus, supposons qu'il y ait 3 arêtes dans le graphe (0, 1), (1, 2) et (2, 0), où une paire de sommets représente une arête.

Nous pouvons représenter les arêtes dans une ArrayList 2D en créant et en remplissant une ArrayList de ArrayList .

Commençons par créer une nouvelle ArrayList 2D :

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

Ensuite, nous initialiserons chaque élément de ArrayList avec un autre ArrayList :

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

Enfin, nous pouvons ajouter toutes les arêtes (0, 1), (1, 2) et (2, 0) à notre ArrayList 2D :

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

Supposons également que notre graphe n'est pas un graphe orienté. Nous devons donc également ajouter les arêtes (1, 0), (2, 1) et (0, 2) à notre ArrayList 2D :

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

Ensuite, pour parcourir le graphe entier, nous pouvons utiliser une double boucle 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. ArrayList en trois dimensions

Dans la section précédente, nous avons créé une ArrayList bidimensionnelle . En suivant la même logique, créons une ArrayList en trois dimensions :

Supposons que nous voulons représenter un espace 3-D. Ainsi, chaque point de cet espace 3D sera représenté par trois coordonnées, disons X, Y et Z.

En plus de cela, imaginons que chacun de ces points aura une couleur, soit rouge, vert, bleu ou jaune. Désormais, chaque point (X, Y, Z) et sa couleur peuvent être représentés par un ArrayList en trois dimensions .

Pour simplifier, supposons que nous créons un espace 3D (2 x 2 x 2). Il aura huit points: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0) et (1, 1, 1).

Commençons par initialiser les variables et la ArrayList 3-D :

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

Ensuite, initialisons chaque élément de ArrayList avec 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)); } }
    

Maintenant, nous pouvons ajouter des couleurs aux points dans l'espace. Ajoutons la couleur rouge pour les points (0, 0, 0) et (0, 0, 1):

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

Ensuite, définissons la couleur bleue pour les points (0, 1, 0) et (0, 1, 1):

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

Et de même, nous pouvons continuer à peupler des points dans l'espace pour d'autres couleurs.

Notez qu'un point avec des coordonnées (i, j, k) a ses informations de couleur stockées dans l' élément ArrayList 3-D suivant :

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

Comme nous l'avons vu dans cet exemple, la variable d' espace est une ArrayList . En outre, chaque élément de cette ArrayList est une ArrayList 2D (similaire à ce que nous avons vu dans la section 2).

Notez que l'index des éléments dans notre espace ArrayList représente la coordonnée X, tandis que chaque ArrayList 2D , présente à cet index, représente les coordonnées (Y, Z).

4. Conclusion

Dans cet article, nous avons expliqué comment créer une ArrayList multidimensionnelle en Java. Nous avons vu comment nous pouvons représenter un graphe en utilisant une ArrayList 2D . De plus, nous avons également exploré comment représenter les coordonnées spatiales 3-D à l'aide d'une ArrayList 3-D .

La première fois, nous avons utilisé une ArrayList de ArrayList, tandis que la deuxième fois, nous avons utilisé une ArrayList de 2-D ArrayList . De même, pour créer une ArrayList N-Dimensional , nous pouvons étendre le même concept.

L'implémentation complète de ce tutoriel est disponible sur GitHub.