Java Básico 6: Matrices y vectores

Ya estamos a domingo de nuevo, parece que va siendo costumbre los domingos de nuevo escribir un post. Vamos a empezar con un tipo de variables que vamos a usar para almacenar muchos datos de igual naturaleza, es decir, los llamados vectores y matrices. Algunos llaman a los vectores matrices también porque son matrices de una sola fila.

Imaginemos pues que queremos guardar 3 elementos de tipo entero. Para ello usaremos lo siguiente:

package javaBasico;

public class JavaBasico6Matrix {

public static void main(String[] args) {

// declaración de la variable ‘vector’
int vector[];

// se reserva memoria para guardar los 
// valores, es decir, guardamos 3 posiciones
// de memoria de tipo entero
vector = new int[3];

// guardamos en la posición 0 el número 2
vector[0] = 2;

// guardamos…
vector[1] = 3;

// guardamos…
vector[2] = 4;

// escribimos en el out (pantalla) el vector
System.out.println(vector[0] + “, ” + vector[1] + “, ” + vector[2]);

}

}

En Java siempre los vectores y matrices, también las clases que hagamos primero hay que declararlas y luego se les reserva memoria para poder usarlas. Es decir, la primera parte es decirle al programa que vamos a usar una variable, que le llamamos ‘vector’, y que va a ser un vector de enteros. Lo siguiente es realmente reservar una parte de la memoria del ordenador para guardar esos números enteros.

Internamente el Sistema Operativo se encarga de la reserva de memoria, generalmente es en memoria principal (la RAM o caché). Hay que acordarse, siempre se declara, luego se reserva memoria. La memoria se libera automáticamente porque Java tiene un sistema por el que todas las variables usadas en una clase se borran en memoria cuando la vida de la clase ha terminado.

Los tipos de datos primitivos sólo se declaran y directamente se utilizan sin tener que reservar memoria, ésta es una diferencia básica.

Vamos ahora con las matrices.

Si queremos por ejemplo almacenar valores como hacemos en una hoja de Excel, ordenando por filas y columnas, podemos usar una variable ‘matriz’ de la forma siguiente:


package javaBasico;

public class JavaBasico6Matrix {

public static void main(String[] args) {

// declaración de la variable
int matriz[][];

// se reserva memoria 
matriz = new int[2][2];

// guardamos…
matriz[0][0] = 2;

// guardamos…
matriz[0][1] = 3;

// guardamos…
matriz[1][0] = 4;

// guardamos…
matriz[1][1] = 5;

// escribimos en el out 
System.out.println(matriz[0][0] + “, ” + matriz[0][1]);
System.out.println(matriz[1][0] + “, ” + matriz[1][1]);

}

}

Es igual que un vector pero ahora tenemos dos coordenadas, donde pone: matriz[a][b]
a y b son las coordenadas.

Hay que fijarse en que en la reserva de memoria se le dice el tamaño o número de posiciones, pero a la hora de usar la variable, comenzamos por la posición 0 como primera posición. Ésto puede llevar a confusión porque la última posición de la matriz por ejemplo, no es matriz[2][2], sino es matriz[1][1], porque hemos empezado por matriz[0][0].

Falta decir que en un vector o en una matriz podemos poner enteros, decimales, o incluso objetos de la clase que queramos, por ejemplo:

package javaBasico;

class Persona {
// ésta es una clase que
// de momento son
String nombre;
int edad;
}

public class JavaBasico6Matrix {

public static void main(String[] args) {

// declaración de la variable 
Persona personas[];

// se reserva memoria 
personas = new Persona[20];

}

}

Podemos ver que con éste código hemos hecho un vector para guardar nombre y edad para 20 personas.
Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *