Java – Paso a paso Tema 9
Written by lopezatienza on 05/09/2009 – 19:45 -TEMA9. Arrays y colecciones en Java
En esta Unidad Didáctica aprenderemos a usar arrays en Java, y veremos unos tipos especiales de arrays (colecciones), que como gran ventaja que nos aportan tienen la característica de ser dinámicos y no estáticos.
1. Arrays
2. Colecciones
1. Arrays
Es una estructura de datos para agrupar un conjunto de datos del mismo tipo y permite acceder a sus elementos de forma individual mediante un índice.
altura[5] = 72;
altura[numero] = 12 * valor;
media = (altura[0] + altura[1] + altura[2])/3;
System.out.println(“altura = ”+ altura[MAX/2]);
Hay dos formas de declarar un array sin diferencias entre ellas:
int[] array1;
int array2[];
Al crear el array como antes, no se le da tamaño, solo creamos la referencia. Al ser los arrays objetos, como cualquier objeto, habrá que instanciarlo (mediante el operador new).
Al instanciar el array, le damos un tamaño el cual ya no se podrá cambiar (lo conocemos de antemano). Todos los elementos de un array deben ser del mismo tipo, es decir, no podemos crear un array de enteros e intentar introducir un elemento String. Se puede conocer la longitud de un array mediante la propiedad length (sin paréntesis).
Al instanciar un array, todos los elementos se inicializan a 0, null o false (dependiendo del tipo de elemento que contenga el array).
int[] altura= new int[10];
Como los arrays son objetos, se pasan siempre por referencia (ya vimos en el tema anterior en que consistía el paso por referencia, si alguien tiene dudas que vuelva a mirarlo).
El problema que nos surje aquí es que los datos se almacenan por separado, pudiendo quedar incoherentes. ¿Cómo podemos resolver esto? Mediante arrays de objetos.
Arrays bidimensionales
2. Colecciones
Diferencias
Arrays
Ventajas:
- Rápido en el acceso a los elementos del array
Desventajas:
- Ineficiente para añadir o borrar elementos.
- No tienen métodos especiales para realizar búsquedas.
Apropiados para almacenar datos ordenados que no cambien a menudo y que no se buscan muy frecuentemente.
Listas enlazadas
Ventajas:
- Permite añadir o borrar elementos en cualquier posición.
- Permite mantener los datos ordenados fácilmente.
Desventajas:
- Ineficiente para el acceso a elementos.
- No tienen métodos especiales para realizar búsquedas.
Apropiados para almacenar datos ordenados que cambien a menudo y que no se buscan muy frecuentemente.
Árboles
Ventajas:
- Permite añadir o borrar elementos en cualquier posición.
- Permite mantener los datos ordenados fácilmente.
- Permite búsquedas más eficientes que las listas enlazadas.
Desventajas:
- No demasiado eficiente para el acceso a los elementos.
Apropiados para almacenar datos ordenados que cambien a menudo y que no se buscan muy frecuentemente.
Hashing
Ventajas:
- Permite búsquedas muy eficientes.
- Permite un acceso eficiente a los datos.
- Permite inserciones y borrados razonablemente eficientes.
Desventajas:
- No apropiado para conjunto de datos pequeños debido a la sobrecarga que produce el indexado (hashing).
Apropiados para almacenar datos que sean buscados muy frecuentemente y grandes conjuntos de datos.
<< Volver al tema anterior || >> Ir al tema siguiente
Referencias:
Tags: Java
Posted in Java | No Comments »