14 colecciones

8
1 Colecciones Colecciones FJP – Unidad 14 Academia Local Cisco – UTN Facultad Regional Santa Fe – http://www.santafecna.org.ar Introducción Introducción Introducció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.

Transcript of 14 colecciones

Page 1: 14 colecciones

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.

Page 2: 14 colecciones

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

Page 3: 14 colecciones

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

Page 4: 14 colecciones

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

Page 5: 14 colecciones

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

Page 6: 14 colecciones

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

}}

Page 7: 14 colecciones

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

Page 8: 14 colecciones

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