Colecciones en java

17
Colecciones

Transcript of Colecciones en java

Page 2: Colecciones en java

Paquete java.util

• Conjunto de clases e interfases usadas para:– Administrar colecciones de objetos.– Administrar la comunicación entre objetos.– Manipular información de los objetos.

Page 3: Colecciones en java

Colecciones

• Colecciones son objetos que referencian a un grupo de objetos.

• A diferencia de los arreglos, las colecciones solamente mantienen referencias a objetos de tipo Object.

• Cualquier objeto puede ser almacenado en una colección.

• El casting es requerido para acceder a los objetos de la colección.

• Las colecciones pueden:– Cambiar de tamaño dinámicamente.– Proveer ordenamiento.– insertar y borrar elementos.

Page 4: Colecciones en java

Tecnologías de Almacenamiento usadas para almacenar y administrar una Colección de Objetos

• Array:– Tamaño fijo.– Acceso rápido y eficiente.– Difícil de modificar.

• Linked List:– Los elementos tienen referencias al elemento anterior

y posterior, fácil de remover y agregar elementos.– El tamaño puede crecer dinámicamente, búsqueda

lenta.

Page 5: Colecciones en java

Tecnologías de Almacenamiento usadas para almacenar y administrar una Colección de Objetos

• Tree:– Guarda elementos en orden. – Fácil de cambiar.

• Hashtable:– Usa una clave indexada para identificar

elementos. Los elementos son obtenidos de un hashtable usando la clave del elemento.

Page 6: Colecciones en java

Tipos de Colecciones

• Collection– Contenedor simple de objetos no ordenados. – Los duplicados son permitidos.

• List– Contenedor de elementos ordenados. – Los duplicados son permitidos.

• Set– Colección desordenada de objetos. – Los duplicados no son permitidos.

• Map– Colección de pares: clave/valor. – La clave es usada para indexar el elemento.– Los duplicados no son permitidos.

Page 7: Colecciones en java

Collection Interfaces

• Definen el comportamiento de los objetos de colección.

Page 8: Colecciones en java

Interfases Iterator y ListIterator

• Iterator: Provee un mecanismo básico para iterar a través de los elementos de una colección. Solo se mueve hacia delante en la lista.

• ListIterator: Provee soporte para la iteración a través de una lista. Permite recorrer una lista tanto hacia delante como hacia atrás.

Page 9: Colecciones en java

Collection classes

Page 10: Colecciones en java

Collection classes

Page 11: Colecciones en java

Objetos Set

• La clase HashSet implementa la interface Set.• Los objetos HashSet no permiten duplicados y no

están ordenados.• La clase TreeSet implementa la interfase SortedSet. • Los objetos de tipo TreeSet no admiten duplicados y

ordenan sus elementos de forma ascendente. Incluye métodos para aprovechar el ordenamiento, ejemplos:– TreeSet.first()– TreeSet.last()– TreeSet.headSet()– TreeSet.subSet()

Ver SetOfNumbers.java y TreeSetExample.java

Page 12: Colecciones en java

Objetos List

• Vector– Es una colección de objetos que implementa la interfase

List. – De tamaño variable. – Mantiene el orden en que los objetos son agregados.– Permite duplicados.

• ArrayList– Clase similar a Vector, con la diferencia que no es

sincronizada.• LinkedList

– Cada elemento tiene una referencia al anterior y posterior elemento.

Ver SampleVector.java, ArrayListOfNumbers y LinkedListExample.

Page 13: Colecciones en java

Iteradores

• La interfase ListIterator permite iterar a través de las listas.

• Los métodos más comunes del al interfase Iterator son:

Page 14: Colecciones en java

Iteradores

Page 15: Colecciones en java

Objetos Map

• Usa una clave única para referenciar un elemento.

• La clave determina donde debe ser guardado un elemento.

• El método hashCode() de la clase Object provee el identificador único del objeto (clave única). Este método debe ser sobreescrito.

Ver StudentHasHashValue.java y MappedStudent.java

Page 16: Colecciones en java

Objetos Map

Page 17: Colecciones en java

Ordenando y mezclando una lista de objetos

• Collection tiene métodos de ordenamiento:– Collection.sort() ordena una lista completa o una

subsección de esta.– Collection.reverse() reversa la lista actual.

• Shuffling (mezcla) mueve elementos dentro de una lista de forma aleatoria.

Ver ActorsList.java