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.

JavaPasoAPaso0901.JPG

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];

JavaPasoAPaso0902.JPG

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).

JavaPasoAPaso0903.JPG

 

JavaPasoAPaso0904.JPG

 

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.

JavaPasoAPaso0905.JPG

Arrays bidimensionales

JavaPasoAPaso0906.JPG

 

JavaPasoAPaso0907.JPG

 

2. Colecciones

JavaPasoAPaso0908.JPG

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.

JavaPasoAPaso0909.JPG

 

JavaPasoAPaso0910.JPG

 

JavaPasoAPaso0911.JPG

 

<< Volver al tema anterior  || >> Ir al tema siguiente

 

Referencias:

 

http://www.jmordax.com/

 


Autor: Antonio Lopez Atienza


Tags:
Posted in Java | No Comments »

Leave a Comment

 

RSS
MCC D5E