Estructuras de datos: ARRAY
En cualquier lenguaje de programación se trabaja con datos, los cuales se pueden presentar de formas muy diversas, por ejemplo, la edad de un niño:
//Variable sencilla de tipo entero:
int edad = 12;
Con las variables sencillas que conocemos podemos definir datos de casi cualquier tipo, sin embargo en algún momento querremos trabajar con listas de datos, es entonces cuando podemos utilizar un Array, que nos permite definir una estructura de datos compuesta por una colección de datos, se denomina también vector.
Un array se define como un conjunto de datos del mismo tipo:
//Un array se puede definir de dos maneras:
int [] numeros;
String [] ciudades;
//Definimos su longitud
numeros = new int [10]; //Podrá almacenar 10 datos de tipo entero
ciudades = new String[2]; //Podrá almacenar 2 datos de tipo String
//Asignamos valores al array y los mostramos por pantalla:
for (int i = 0; i < numeros.length; i++) {
numeros[i]=i;
System.out.println(numeros[i]);
}
Como se puede ver, un Array se instancia como una colección de objetos de algún tipo de dato, es posible también definir un Array de objetos:
Persona [] listaPersonas = new Persona [5];
Un recurso muy interesante es el de aumentar las dimensiones del Array, de este modo podemos definir pares clave : valor de un modo muy sencillo:
//Declaración de un Array bidimensional de enteros:
int [][] arrayPrueba = { {0,0},{1,2},{1,2}};
Cuando queremos recorrer los datos de estos conjuntos, lo habitual es recurrir a estructuras iterativas anidadas:
//Método que recorre un array bidimensional
private void recorrerArray(){
// Primero declaramos el Array y le asignamos valores
int [][] matriz = { {0,0},{1,2},{1,2}};
for (int i = 0; i < matriz.length; i++) {
for (int j = 0; j < matriz[x].length; j++) {
//Ahora mostramos los valores del Array por consola:
system.out.println(matriz[i][j]);
}
}
}
También existen métodos del objeto Array que podemos utilizar, como el equals, cuando queremos ver si varios Arrays contienen los mismos elementos:
//Existen dos tipos de comparación entre Arrays:
//El primero compara si son el mismo Array:
array1.equals(array2)
// Que equivale a : array1 == array2
//La otra opción es comparar el contenido de los Arrays:
Arrays.equals(array1, array2)
Hay muchas formas de trabajar con arrays, con intención didáctica, podemos asignarle a los espacios de memoria valores aleatorios sobre los que realizar pruebas con el siguiente código:
//Código para rellenar un array bidimensional con valores aleatorios:
private void asignarAleatorios(int min, int max){
Random al = new Random(System.currentTimeMillis());
for(int i = 0 ; i < arrayNombre.length;i++){
for(int j = 0; j < arrayNombre[0].length; j++){
arrayNombre[i][j] = al.nextInt(max - min) + min;
}
}
}