Colecciones Java
1
Colecciones (Collection)
• Arquitectura unificada (o framework) que nos
permite emplear distintas estructuras de datos con
el fin de almacenar y recuperar objetos
independientemente de la clase a la cual
pertenezcan.
– Coleccion <Clase> nombre=new Coleccion<Clase>();
Un ejemplo sería:
– List<String> unaLista = new ArrayList<String>();
2
Colecciones (Collection)
3
Colecciones (Collection)
4
Colecciones (Collection)
• Agrupan objetos donde cada elemento
posee un significado similar.
• El valor depende de la posició[Link]
pueden definir recorridos
• Se puede operar sobre un elemento
particular, elementos elegidos mediante
un filtro o sobre la colección completa
• Tienen diferentes interfaces,
funcionalidades y eficiencias.
5
Colecciones (Collection)
• Java dispone de varias formas de
almacenar objetos, o mejor dicho,
referencias a objetos.
• A tal fin la librería [Link] posee un
conjunto completo de las denominadas
clases contenedoras.
• Las Colecciones principales son: List,
Set y Map
6
Colecciones (Collection)
• List: son colecciones ordenadas que
admiten duplicados. Se manejan por un
índice.
• Set: Conjunto que no admite elementos
duplicados.
• Map: Contiene pares de valores {clave,
valor} para acceder a un objeto dada su
clave. No permite claves repetidas.
7
Colecciones (Collection)
Collection Map
List Set HashMap TreeMap
LinkedHashMap
ArrayList LinkedList
HashSet TreeSet
LinkedHashSet
8
Métodos de la Interface Collection (Set
y List)
public interface Collection {
// Operaciones basicas
int size();
boolean isEmpty();
boolean contains(Object elemento);
Iterator iterator();
boolean add(Object element);
boolean remove(Object element);
}
9
Métodos de la Interface Collection (Set
y List)
public interface Collection {
// Operaciones completas
boolean containsAll(Collection<?> c);
boolean addAll(Collection <?> c);
boolean removeAll(Collection <?> c);
boolean retainAll(Collection <?> c);
void clear();
}
10
Métodos de la Interface Map
put(k key,v value);
get(Object key);
remove(Object key);
boolean containsKey(Object key);
boolean containsValue(Object value);
Set <?> keySet();
Collection values();
11
Colecciones. Arraylist
12
Colecciones. LinkedList
13
Colecciones (Collection). Comparaciones
• Interfaces de Apoyo:
public interface Comparable{
public int compareTo (Object o)
}
public interface Comparator{
public int compare(Object o1, Object o2);
public boolean equals(Object o1, Object o2);
14
Colecciones (Collection). Iteradores
• Un iterador definido sobre una
colección nos permite visitar todos sus
elementos uno por uno.
• El iterador se puede ver como una
forma de recorrer una secuencia de
elementos, disponiendo de un cursor o
índice.
• Facilitan cambios de implementación.
15
Colecciones (Collection). Iteradores
• Toda clase que implemente Collection
puede generar un Iterador a través del
método iterator
16
Colecciones (Collection). Iteradores
• Se puede pensar en un Iterator como un
cursor ubicado entre los elementos de la
colección el cual permite iterar sólo hacia
adelante.
hasNext() next()
true
hasNext()
false
iterator
17
Ejemplos implementados en Java
A continuación se presentan
ejemplos del uso de las
colecciones: LinkedList, ArrayList,
Set y Map.
18
Colecciones. Ejemplo: LinkedList
19
Colecciones. Ejemplo: LinkedList
Librería que debe estar presente en
todos los programas donde sea
necesario emplear una Colección
20
Colecciones. Ejemplo: LinkedList
Resultado de los métodos agregarColor e ImprimirLista
21
Colecciones. Ejemplo: LinkedList
Continuación del main
22
Colecciones. Ejemplo: LinkedList
Clase LinkedList (implementación de los métodos)
23
Colecciones. Ejemplo: LinkedList
Clase LinkedList (continuación implementación de los
métodos)
24
Colecciones. Ejemplo: LinkedList
Resultado de la corrida:
25
Colecciones. Ejemplo: ArrayList
Se tiene la clase persona:
Constructor, getters y setters
26
Colecciones. Ejemplo: ArrayList
Main:
27
Colecciones. Ejemplo: ArrayList
En el Main si aplicamos el método [Link](lista,p1)
obtendríamos la siguiente salida:
28
Colecciones. Ejemplo: ArrayList
Para ordenar la lista se utilizará la interfaz Comparator:
Por cédula:
Por nombre:
29
Colecciones. Ejemplo: ArrayList
En el Main tendríamos lo siguiente:
30
Colecciones. Ejemplo: ArrayList
Obteniendo como resultado:
31
Colecciones. Ejemplo: Set
Tenemos el siguiente Main:
32
Colecciones. Ejemplo: Set
Y la clase ClaseSet con los métodos invocados en el main:
33
Colecciones. Ejemplo: Set
Se obtiene como resultado:
34
Colecciones. Ejemplo: Map
Tenemos el siguiente Main:
35
Colecciones. Ejemplo: Map
Y la clase ClaseMap:
36
Colecciones. Ejemplo: Map
Y la clase ClaseMap:
37
Colecciones. Ejemplo: Map
El resultado de la corrida sería:
38