1
ColeccionesColecciones
FJP – Unidad 14
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
IntroducciónIntroducciónIntroducción
Arreglos à mecanismo lógico incorporado al lenguaje Java(built in) para el almacenamiento de datos.
Características principales de los arreglos:
almacenan de un número fijo de datos primitivos u objetos de un mismo tipo.
Alta velocidad y eficiencia de acceso a sus elementos mediante índices.
Limitaciones principales:
sólo almacenan datos de un mismo tipo.
Longitud fija (Ej: agregar más elementos requiere crear un nuevo arreglo de mayor tamaño)
dificultad para insertar elementos y ordenar elementos.
2
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
ColeccionesColeccionesColecciones
Una colección es un objeto contenedor que representa un grupo de objetos (elementos) y permite su manipulación
Paquete java.util
Ventajas sobre la tecnología de arreglos:
permiten almacenar diferentes tipos de objetos (sólo objetos) en unamisma colección.
pueden crecer dinámicamente.
es posible agregar y eliminar objetos de una colección en formaeficiente.
pueden mantener los objetos en forma ordenada (según un criterio)
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Framework de coleccionesFrameworkFramework de coleccionesde colecciones
El Framework de colecciones de Java es un conjunto deguías o directivas preestablecidas que definen las características y comportamiento de objetoscontenedores que manipulan referencias a otros objetos.
La tecnología de colecciones puede ser entendida en términos de:
- La tecnología de almacenamiento utilizada, y
- Propiedades de colecciones
- Tipos de colecciones definidos por propiedades y almacenamiento
Frameworkà Definido a través de un conjunto de interfases y clases para trabajar con grupos de objetos.
Las interfases definen las propiedades de la colección
3
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Tecnologías de almacenamientoTecnologías de Tecnologías de
almacenamientoalmacenamientoDisponibles 4 tecnologías básicas de almacenamiento de objetos:
Array (arreglos)
Linked list (lista ligada)
Tree (elementos en orden ascendente)
Hash Table
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Almacenamiento: Linked listsAlmacenamiento: Almacenamiento: Linked listsLinked lists
Lista enlazada de elementos mediante punteros.
ítems ordenados
doblemente enlazados (facilita agregar y eliminar elementos)
crecimiento dinámico
Recorrido mediante objetos iteradores
4
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Almacenamiento: Hash TablesAlmacenamiento: Almacenamiento: Hash TablesHash Tables
Cada ítem es ubicado mediante su identificador único en una posición de la tabla (método: par clave-valor)
El identificador es utilizado tanto para almacenar el elemento en la tabla como para recuperarlo.
Tabla Hash
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Tipos de coleccionesTipos de coleccionesTipos de colecciones
Colecciones
Listas
Sets
Maps
Jerarquía de Interfases del Framework de Colecciones
de Java
5
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Interfases del FW Interfases del FW Interfases del FW
La interfase Collection es un grupo de objetos quepermite la existencia de duplicados.
La interfase Set extiende Collection pero prohibe los duplicados.
List extiende Collecction, permite duplicados y provee el indexado de sus elementos.
Map no extiende la clase Collection. Posee las operaciones de Collection pero trabaja con paresClave-Valor (key-value).Un Map es un caso especial de Set. Un conjunto de pares (clave-valor)
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Implementación del FWImplementación del FWImplementación del FW
Jerarquía de clases del FrameWork de colecciones
*Otras implementacionesmás antiguas: Legacy classes
6
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Implementación del FW (cont.)Implementación del FW (Implementación del FW (contcont.).)
HashTableProperties
TreeMapHashMapMap
VectorStack
LinkedListArrayListList
TreeSetHashSetSet
Legacy ClassesImplementaciónInterfase
Los programas deben escribirse pensando en Interfases y NO en implementaciones .Esto evita la dependencia del programa con métodos agregados por una implementa-ción específica dando la libertad al programador de cambiar implementaciones .
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Ej: LinkedListEjEj: : LinkedListLinkedList
import java.util.*;
public class LinkedListExample
{ public static void main(String[] args)
{ LinkedList actors = new LinkedList();
actors.add("John Wayne");
actors.add("Elizabeth Taylor");
actors.add("Richard Harris");
actors.add("Elizabeth Hurley");
actors.add("Richard Burton");
System.out.println("\n\n Lista de Actores");
System.out.println(actors);
}}
7
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
IteratorIteratorIterator
Un objeto Iterador permite recorrer, agregar y eliminar elementos en una colección.
Definidos mediante 2 interfases: Iterator y ListIterator.
Ej: ListIterator actorsI = actors.listIterator();
actorsI.add("Madonna");
actorsI.next();actorsI.next();
actorsI.add("Denzel Washington");actorsI.next();
actorsI.set(actors.getLast());actorsI.add("Jennifer Lopez");
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
Métodos de CollectionMétodos de Métodos de CollectionCollection
Métodos estáticos de la clase Collection:sort(List)
binarySearch(List, Object)
reverse(List)
shuffle (List)
fill(List, Object)
copy(List dest, List src)
min(Collection)
max(Collection)
Ej: Collecction.sort (actors) // ordenamientoCollection.shuffle(actors) // orden aleatorio
Collection.reverse(actors) // inversión
8
Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar
OrdenamientoOrdenamientoOrdenamiento
Método estático Collections.sort()
interfases: SortedSet, SortedMap:
- Colecciones que mantienen sus elementos ordenados.
- Iterators garantizan el recorrido de forma ordenada.
Implementación: TreeSet, TreeMap
Interfase Comparable: – debe ser implementada por todos los elementos en un SortedSet
– debe ser implementada por todas las claves en un SortedMap
– Debe ser implementado por todos los elementos de cualquier colección para utilizar el método Collection.sort( )
Método: int compareTo(Object o)
Define un "orden natural" para esa clase de objeto