colecciones en java
TRANSCRIPT
![Page 2: Colecciones en java](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/7.jpg)
Collection Interfaces
• Definen el comportamiento de los objetos de colección.
![Page 8: Colecciones en java](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/9.jpg)
Collection classes
![Page 10: Colecciones en java](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/10.jpg)
Collection classes
![Page 11: Colecciones en java](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/14.jpg)
Iteradores
![Page 15: Colecciones en java](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/16.jpg)
Objetos Map
![Page 17: Colecciones en java](https://reader034.vdocuments.pub/reader034/viewer/2022052523/5563a596d8b42a01658b5451/html5/thumbnails/17.jpg)
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