Hola a todos, hoy os explicare como funcionan los arrays multidimensionales en Java.
Un array multimensional son mas de un array unidimensional unidos, para que te hagas una idea, es como si fuera una tabla. Se crea igual que un array unidimensional, solo hay que añadir un corchete mas con un tamaño en la definición del array. Veamos un ejemplo:
public class PruebaApp { public static void main(String[] args) { //Definimos un array de 3 filas x 5 columnas int array[][]=new int [3][5]; } }
Como vemos, añadimos un corchete mas después del nombre y del tamaño. El primer corchete son las filas y el segundo son las columnas.
Para asignar un valor, debemos indicar una posicion en las filas y columnas. Por ejemplo:
public class PruebaApp { public static void main(String[] args) { //Definimos un array de 3 filas x 5 columnas int array[][]=new int [3][5]; //Asignamos un 5 al array, en la fila 0 columna 1 array[0][1]=5; } }
También existe una forma de realizar las dos anteriores acciones de una forma más rápida. Esta es su sintaxis:
tipo_dato nombre_array={{valor, valor, valor}, {valor, valor, valor}};
Como vemos por cada fila se abre una llave. Veamos como se hace:
public class PruebaApp { public static void main(String[] args) { //Definimos un array de 3 filas x 5 columnas int array[][]={{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; } }
Para recorrer un array, debemos usar un bucle anidado, donde el primer bucle controla las filas y el de dentro las columnas. Veamos un ejemplo:
public class PruebaApp { public static void main(String[] args) { //Definimos un array de 3 filas x 5 columnas int array[][]={{1,2,3,4,5}, {6,7,8,9,10}, {11,12,13,14,15}}; //Recorremos el array multidimensional for (int i=0;i<array.length;i++){ for(int j=0;j<array[0].length;j++){ System.out.println(array[i][j]); } } } }
Como vemos en el ejemplo anterior, vemos array.length, devuelve la longitud de las filas (3) y array[0].lenght devuelve la longitud de las columnas (5).
¿Podemos recorrer una sola fila o columna del array? Si podemos, para ello solo tenemos que usar un bucle, indicando que es lo que vamos a recorrer. Veamos un ejemplo:
public class PruebaApp { public static void main(String[] args) { //Definimos un array de 3 filas x 5 columnas int array[][]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}}; //Recorremos la primera columna de todas las filas for(int i=0;i<array.length;i++){ System.out.println(array[i][0]); } //Recorremos todas las columnas de la segunda fila for(int i=0;i<array[0].length;i++){ System.out.println(array[1][i]); } } }
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Muy interesante tu Blog! Saludos compañero de Traffic Club!
Se aprende muchísimo con tu blog. Gracias!!! Traffic.club http://www.cocina-bienestar.com/
Me Apoyas con esto: Con su Clase y con el BufferedReader o Scanner
Desarrollar un programa que permita simular el juego de batalla naval (2 jugadores), para ello debe generar 2 matrices de 4 x 6, una matriz será asignada a cada jugador. Al iniciar el programa debe ocupar 3 celdas o casilleros de la matriz de cada jugador con valores de 3, simulando los barco de cada oponente, de forma aleatoria, seguidamente el jugador uno debe ingresar una coordenada entre las filas 1 a la 4 y las columnas 1 a la 6, si la coordenada coincide con algún valor de la coordenada de un barco el jugador obtiene un punto, luego es el turno del siguiente jugador, gana el jugador que obtiene los 3 puntos o acierta las coordenadas de los 3 barcos de su oponente.
Me parece muy bien este blog, hasta ahora tengo claro lo de los array, pero mi pregunta es, ¿Como hago, o como escribo la condición para que el programa mi imprima todas las filas donde hay un elemento común en específico?
Tengo un arreglo grande, pero yo quiero que cuando trate un número «x» que se repite en varias filas, que el sistema, me imprima todas las filas en las que se repite ese «x».
Gracias!!!
y si tengo dos arrays multidimensionales (bidimensionales concretamente) una con nombres de alumnos y otra con las notas…. Algo así:
String alumClasse[][] {
{«Raul»,»Ivan»,»Lucas»,»vacio»,»alex»,»vacio»}, //0
{«Jordi»,»Quique»,»vacio»,»vacio»,»Marc»,»Pepe»}, //1
{«Judith»,»David»,»vacio»,»Didier»,»Beatriz»,»Luis»}, //2
{«Saida»,»Rubens»,»Adrian»,»vacio»,»vacio»,»Alex»}, //3
{«Joel»,»vacio»,»Diego»,»Sergio»,»Borja»,»vacio»} //4
};
Short alumNota [][] {
{8,6,8,0,7,0}, //0
{5,5,0,0,9,9}, //1
{0,6,0,10,6,7}, //2
{8,9,6,0,0,6}, //3
{7,0,8,9,5,0} //4
};
Como haces un for each?? ya hice con el for pero tengo que hacerlo con el for each y pongo:
for (String alumnos : alumClasse) {
System.out.println(alumnos);
pero no me coge el alumclasse al ser bidimensional imagino…
Gracias!!