Introducción a las Matrices

Una matriz es una estructura multidimensional, es decir a diferencia de los vectores que son de 1 sola dimensión (Matriz unidimensional), una matriz puede ser de 2 o más dimensiones.

 

Una matriz de 2 dimensiones se puede representar mediante una variable con dos subíndices (Filas y columnas). Una matriz de tres dimensiones se representa mediante una variable con 3 subíndices, y así sucesivamente.

Matriz
Ejemplo de una matriz de dos dimensiones (bidimensional).

La forma de acceder y de declarar una matriz es igual que la de los vectores, declarando el tipo de la matriz, su nombre y los corchetes que indiquen que es un arreglo, lo único distinto es que, para saber si es una vector o una matriz multidimensional se asignaran tantos corchetes como se quiera la dimensión de la matriz.

 

Para crear y utilizar una matriz hay que realizar tres operaciones: Declararla, crearla e iniciarla.

Declarar una matriz

La declaración de una matriz se hace de la misma forma que un vector (al final el vector es una matriz unidimensional).

 

Tipo[] nombre;

Tipo nombre[];

 

Donde tipo indica el tipo de los elementos de la matriz (Puede ser int, String, float, double o de alguna clase definida por el usuario).

 

En la declaración anterior se define una matriz unidimensional o vector, para declarar una matriz multidimensional se hace agregando los corchetes, ejemplo:

 

Tipo[][] nombre;

Tipo nombre[][];

 

y una matriz tridimensional se declararía así:

 

Tipo[][][] nombre;

Tipo nombre[][][];

 

Ejemplo de declaraciones de matrices:

 

int mat[];

float[][] matriz;

 

String[][][] nombres;

Creación de una matriz

Como se indicó anteriormente se necesita crear la matriz para poderla utilizar, es el siguiente paso después de haberla creado.

 

Para crear una matriz hay que tener en cuenta el tamaño de la matriz ya que las matrices reservan espacio de memoria suficiente para poder contener todos sus elementos, una matriz muy grande puede consumir los recursos de la computadora, para crearla se expresa de la siguiente manera:

 

nombre=new tipo[tamaño][tamaño];

 

El ejemplo anterior es para una matriz bidimensional y donde nombre es el nombre de la matriz ya declarada; tipo es el mismo tipo con el cual se declaró; y tamaño es un valor numérico entero positivo, este valor indicará el número de elementos que contendrá la matriz, los siguientes ejemplos crearían las matrices que se declararon anteriormente.

 

mat=new int[6];

matriz=new float[4][2];

nombres=new String[3][3][3];

 

La primera linea crea una matriz (o vector) con 6 elementos de tipo int. La segunda linea crea una matriz bidimensional con 8 elementos (4x2=8) de tipo float, el tercer elemento crea 27 elementos (3x3x3=27) de tipo String.

 

Es bastante común declarar y crear una matriz en una sola linea.

 

Tipo nombre[]=new tipo[tamaño];

 

Tipo[] nombre=new tipo[tamaño];

Iniciar una matriz

Una matriz es un objeto, por lo tanto cuando es creada toma valores iniciales automáticamente. Si la matriz es numérica toma el valor inicial es 0, si es booleano toma como valor inicial false y si es referencia a un objeto se inicia con null.

 

Para iniciar una matriz con valores diferentes se puede hacer de la misma forma que como se asigna en los vectores, mediante llaves que abren y llaves que cierran ({ y } ), ejemplo:

 

int matriz[]=new int[5][5];

matriz={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};

 

Se asignan los valores por filas, la primera fila tendrá los valores 1,2,3,4 y 4, la segunda fila tendrá 6,7,8,9 y 10, etc.

 

 

También se pueden asignar valores por posiciones.

Matriz con posiciones
Matriz con posiciones

La imagen anterior representa un modelo abstracto de lo que sería una matriz bidimensional y sus posiciones correspondientes, como ya se había mencionado las filas y columnas comienzan de 0, entonces para asignar un valor a una celda se indica el nombre de la matriz y la posición en donde se va a guarda el valor, por ejemplo.

 

Int matriz[][]=new int[5][5];

matriz[0][0]=5;

matriz[0][1]=8;

matriz[4][4]=10;

 

En los ejemplos anteriores solo las celdas que se les asignaron un valor se modifican, todas las demás tendrán su valor inicial por defecto, en este caso por ser matriz de enteros es 0.

 

Importante: Siempre la primera posición tanto para filas como para columnas es 0.

 

Importante: Siempre que se asigne un valor a una posición que no exista en el vector/matriz java arrojará una excepción de tipo ArrayIndexOutOfBoundsException, esto hará que el programa se desborde y termine su ejecución, por eso es importante manejar bien las dimensiones de los arreglos.

 

¿Como sabemos para no exceder accidentalmente la longitud de un arreglo?

 

Bien tenemos una variable pública que nos permite saber la longitud total de cualquier tipo de arreglo, se llama length y se manda a llamar de la siguiente manera:

 

nombreMatriz.length;

 

Ahora si podemos empezar a trabajar con matrices, es importante mencionar que conocer el uso correcto de las matrices nos ayudará a resolver un sin fin de problemas, son usadas mucho en la programación de videojuegos, en el tratamiento de imágenes, en la organización de datos, etc.