Noticias

* Completa este formulario para conocer los temas de tu interes, te tomará unos segundos.
* Nuevos temas en CAKEPHP
* Ahora puedes bajar los proyectos finalizados!
* Sigue a la página para seguir creciendo!!

sábado, 14 de julio de 2012

Java: Matrices

No hay comentarios :
Introducción

Una matriz es un arreglo bidimensional que está formada por filas y por columnas que se utiliza para almacenar datos y/o información en cada campo que la compone. En esta entrada aprenderemos como funciona y como utilizarla.

Desarrollo

Una matriz si la representáramos en un dibujo sería de la siguiente manera:


Y ahora se preguntarán ¿Como se programa eso en Java?

Crear una matriz en este lenguaje no es gran cosa, pero su utilización puede ser muy útil dependiendo que es lo que queramos hacer, entonces empecemos.

Para crear nuestra matriz se necesita saber que tipo de dato va a contener ya pueda ser algún tipo de dato primitivo (enteros, caracteres, entre otros) u objetos creados por nosotros, luego colocar dos pares de paréntesis cuadrados "[ ] [ ]", a diferencia de un vector acá utilizamos dos pares de paréntesis cuadrados uno corresponderá a las filas y el otro par a las columnas de nuestra matriz.

Luego le tenemos que dar un nombre a nuestra matriz, ese nombre puede ser cualquiera (el que más se ajuste a los datos que va a contener).

int[][] matrizAnios;
String[][] nombresAlumnos; 
Empleados[][] matrizEmpleados; 
/* Partimos del hecho de que existe una clase empleados con sus características correspondientes */ 

Ahora bien, solo llevamos la mitad de nuestra inicialización el resto creo que ya se nos hará mas común. Luego de lo anterior colocamos el símbolo de igual ("="), el new y luego el tipo de variable de nuestra matriz con sus correspondientes paréntesis cuadrados y el punto y coma (";"), dentro de estos últimos paréntesis cuadrados irán las medidas de nuestra matriz en filas y columnas, siguiendo el ejemplo anterior sería como a continuación:

int[][] matrizAnios = new int[14][14]; // Una matriz cuadrada
String[][] nombresAlumnos = new String[2][3];
Empleados[][] matrizEmpleados = new Empleados[8][120];
/* Partimos del hecho de que existe una clase empleados con sus características correspondientes */

Algo lógico es que no se pueden poner valores negativos en el tamaño de la matriz, por el simple hecho de que una matriz no puede tener por ejemplo "-12" filas, si lo ponen les va a mostrar este error: java.lang.NegativeArraySizeException

Algo que tiene que quedar claro es que una matriz se maneja con dos índices o un par ordenado "(filas, columnas)", donde esos índices son números positivos dentro del rango de tamaño de nuestra matriz, si colocamos valores fuera del alcance de nuestra matriz lo más probable es que se nos venga abajo con un error.

Ahora comenzaremos a hacer ejercicios para entender el funcionamiento de la matriz, para ello llenemos una matriz de enteros de tamaño 10x10, con el siguiente código:

public void llenarNumerosDelUnoAlCien(){
    int[][] numeros = new int[10][10];
    int numero = 1;
    for (int i = 0; i < numeros.length; i++){
        for(int j = 0; j < numeros[0].length; j++){
            numeros[i][j] =  numero++;
            System.out.println(numeros[i][j]);<
        }
    }
}

Bien nuestro método funciona de la siguiente manera:
 - El primer for se encarga de llevar las filas de nuestra matriz (el eje y)
 - El segundo for se encarga de llevar el control de nuestras columnas (el eje x)
 - La condición del primero for es: mientras sea menor estricto que el número de filas que contenga nuestra matriz en este caso son 10.
 - La condición del segundo for es igual que la anterior solo que se coloca un "[0]" para que cuente el número de columnas que contiene.

Se ilustra mejor en el siguiente dibujo los puntos de las condiciones.



Si queremos dar un valor a una posición determinada dentro de la matriz, solo hace falta indicar la posición y el valor que le queremos asignar, ejemplo:

String[][] nombres = new String[3][3];
nombres[0][0] = "Francisco";
nombres[2][2] = "Itzel";

Esto llenaría la primera posición de la matriz y luego la ultima, se ilustra en el siguiente dibujo.


Para obtener un valor se hace lo mismo, supongamos que con nuestra matriz anterior ya con los dos nombres ahora quiero obtener el primero e imprimirlo en consola:

System.out.println(nombres[0][0]);
/*Eso me imprimirá Francisco.*/

Conclusiones

El uso que se le puede dar a las matrices es muy variado, pero, acá les enseño solo lo básico (crearla, asignarle valores, y obtener los valores).

Las matrices son un tipo de estructura de datos estáticos al igual que los arrays o vectores vistos anteriormente, osea, no se puede modificar su tamaño una vez en ejecución.

No hay comentarios :

Publicar un comentario