1. Información general
La creación de una ArrayList multidimensional a menudo surge durante la programación. En muchos casos, es necesario crear una ArrayList bidimensional o una ArrayList tridimensional .
En este tutorial, discutiremos cómo crear una ArrayList multidimensional en Java.
2. ArrayList bidimensional
Supongamos que queremos representar una gráfica con 3 vértices, numerados del 0 al 2. Además, supongamos que hay 3 aristas en la gráfica (0, 1), (1, 2) y (2, 0), donde un par de vértices representa una arista.
Podemos representar los bordes en una ArrayList 2-D creando y rellenando una ArrayList de ArrayList s.
Primero, creemos una nueva ArrayList 2-D :
int vertexCount = 3; ArrayList
graph = new ArrayList(vertexCount);
A continuación, inicializaremos cada elemento de ArrayList con otra ArrayList :
for(int i=0; i < vertexCount; i++) { graph.add(new ArrayList()); }
Finalmente, podemos agregar todos los bordes (0, 1), (1, 2) y (2, 0) a nuestra ArrayList 2-D :
graph.get(0).add(1); graph.get(1).add(2); graph.get(2).add(0);
Supongamos también que nuestra gráfica no es una gráfica dirigida. Entonces, también debemos agregar los bordes (1, 0), (2, 1) y (0, 2) a nuestra ArrayList 2-D :
graph.get(1).add(0); graph.get(2).add(1); graph.get(0).add(2);
Luego, para recorrer todo el gráfico, podemos usar un bucle for doble:
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 tridimensional
En la sección anterior, creamos un ArrayList bidimensional . Siguiendo la misma lógica, creemos una ArrayList tridimensional :
Supongamos que queremos representar un espacio tridimensional. Entonces, cada punto en este espacio tridimensional estará representado por tres coordenadas, digamos, X, Y y Z.
Además de eso, imaginemos que cada uno de esos puntos tendrá un color, ya sea rojo, verde, azul o amarillo. Ahora, cada punto (X, Y, Z) y su color se pueden representar mediante una ArrayList tridimensional .
Para simplificar, supongamos que estamos creando un espacio 3-D (2 x 2 x 2). Tendrá ocho puntos: (0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0 , 1), (1, 1, 0) y (1, 1, 1).
Primero inicialicemos las variables y el 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);
Luego, inicialicemos cada elemento de 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)); } }
Ahora, podemos agregar colores a los puntos en el espacio. Agreguemos el color rojo para los puntos (0, 0, 0) y (0, 0, 1):
space.get(0).get(0).add(0,"Red"); space.get(0).get(0).add(1,"Red");
Luego, establezcamos el color azul para los puntos (0, 1, 0) y (0, 1, 1):
space.get(0).get(1).add(0,"Blue"); space.get(0).get(1).add(1,"Blue");
Y de manera similar, podemos continuar poblando puntos en el espacio para otros colores.
Tenga en cuenta que un punto con coordenadas (i, j, k), tiene su información de color almacenada en el siguiente elemento ArrayList 3-D :
space.get(i).get(j).get(k)
Como hemos visto en este ejemplo, la variable de espacio es una ArrayList . Además, cada elemento de este ArrayList es un 2-D ArrayList (similar a lo que vimos en la sección 2).
Tenga en cuenta que el índice de elementos en nuestro espacio ArrayList representa la coordenada X, mientras que cada ArrayList 2-D , presente en ese índice, representa las coordenadas (Y, Z).
4. Conclusión
En este artículo, discutimos cómo crear una ArrayList multidimensional en Java. Vimos cómo podemos representar un gráfico usando un ArrayList 2-D . Además, también exploramos cómo representar las coordenadas espaciales 3-D usando una ArrayList 3-D .
La primera vez usamos una ArrayList de ArrayList, mientras que la segunda vez usamos una ArrayList de 2-D ArrayList . De manera similar, para crear una ArrayList N-dimensional , podemos extender el mismo concepto.
La implementación completa de este tutorial se puede encontrar en GitHub.