You are on page 1of 6

- 1

-
COLECCIONES
Una colección es simplemente un objeto que agrupa varios elementos en uno solo. Para
ello Java dispone de una serie de clases predefinidas muy potentes para el manejo de
información.
Se utilizan para guardar y manipular datos así como para transmitir información entre
métodos.
Java.util.Collection es la raíz de las colecciones y contiene la definición de todos los
métodos genéricos que pueden ser utilizados por las clases predefinidas.
Su tamao es din!mico "varía seg#n las necesidades$.
Solo puede almacenar datos de tipo complejo.
Tipos de colecciones:
HashSet% &olección con un orden aleatorio. Permite aadir' eliminar y buscar de una
forma r!pida. (o admite duplicados.
TreeSet% &olección ordenada. )as lento para modificar y buscar que un *as+set' pero
mantiene los elementos ordenados de forma natural o seg#n compare,o
implementado en la clase. (o admite duplicados.
LinkedHashSet% &olección seg#n el orden de inserción. Permite aadir' eliminar y
buscar de una forma r!pida. (o admite duplicados.
ArrayList% -ista implementada utilizando un array de dimensión modificable' seg#n se
aaden los objetos. .s costoso aadir o borrar un elemento al principio si la lista es
grande y es r!pido para el acceso aleatorio. /dmite duplicados.
LinkedList% -ista doblemente enlazada. )odificación poco costosa para cualquier
tamao' pero lento el acceso. 0til para implementar listas y colas. /dmite duplicados.
Definición de una Colección:
TipoColeccion <tipoDato> varObj = new TipoColeccion <tipoDato>()

Ejemplo:
HashSet <String> ciudades = new HashSet <String>();
// defino la colección de datos ciudades y creo el objeto
- 2-
Java.util.Collection
Los métodos del interfa Collection!
int sie"# $
(1 de elementos que contiene
%oolean is&m'ty"#$
&omprueba si est! vacía
%oolean contains "(%)ect element# $
&omprueba si contiene ese elemento
add "(%)ect element#$
/ade un elemento
remove "(%)ect element# $
.limina un elemento
*terator iterator"#$
2evuelve una instancia del 3terator
Java.util.Iterator
.l interfaz 3terator representa un componente que permite recorrer todos los elementos de
una colección.
,odas las colecciones ofrecen una implementación de 3terator por medio del método%
public 3terator iterator"$4
Sus métodos son%
%oolean has+e,t"#$
Si tiene m!s elementos
(%)ect ne,t"#$
devuelve el elemento actual y se queda apuntando al siguiente
void remove"#$
elimina el elemento actual
.jemplo de utilización para mostrar el contenido de la colección%

Iterator it = coleccion.iterator();
while (it.hasNext()){
System.out.println (it.next().toString);
}
- --
Implementaciones:



*
n
t
e
r
f
a
c
e
s

*m'lementaciones
Set *as+Set ,reeSet -in5ed*as+Set
List /rray-ist -in5ed-ist
.a' *as+)ap ,ree)ap -in5ed*as+)ap
Colecciones sin duplicados. java.util.Set
*ereda del interfaz &ollection' pero no define ning#n método nuevo.
6epresenta colecciones que no permiten tener ning#n elemento duplicado.
java.util.Set
.7isten distintas implementaciones de este interfaz%
HashSet
6ealiza todas las operaciones +abituales "aadir' borrar' comprobar$.
8frece un acceso r!pido cuando dic+o acceso es aleatorio. Su orden de
iteración es impredecible.
LinkedHashSet Su orden de iteración es su orden de inserción.
TreeSet
Su orden de iteración depende de la implementación que los elementos
+agan del interface Com'ara%le' es decir' todos los elementos est!n
ordenados en su orden natural por defecto o como se indique en el
método com'areTo de la clase.
- /-
Colecciones con duplicados. java.util.List
*ereda de la interfaz Collection' implementan el interface List.
3ncorpora nuevos métodos de tipo posicional' posibilitando el acceso a los elementos a
través de un índice' por lo que se podr!%
/cceder a un elemento concreto a través de una posición.
3nsertar un elemento en una posición.
6epresenta colecciones que s0 permiten tener elementos duplicados.
java.util.List
-as clases que se implementan son%
ArrayList
9unciona como un /rray sin preocuparse del tamao y ofrece un tiempo
de acceso óptimo cuando este tipo de acceso es aleatorio' pero lento si
se desea insertar o eliminar en medio de la lista.
LinkedList
Su orden de interacción es su orden de inserción. Permite manejar listas
de objetos como una cola o una pila. .l acceso es r!pido si se realiza al
principio o al final de la lista' en caso contrario se +ace lento y su
modificación es poco costosa. 3mplementa add9irst"$' add-ast"$'
get9irst"$' get-ast"$' remove9irst"$ y remove-ast"$.

/ade los métodos%
Object get(int indice);
2evuelve el elemento de esa posición.
Object set(int indice, Object x);
6eemplaza el elemento de esa posición por el objeto 7.
Void add(int indice, Object x);
3nserta el elemento 7 en esa posición.
Object remove(int indice);
.limina el elemento de esa posición.
- 1-

boolean addAll(int indice, Collection c);
3nserta todos los elementos en esa posición.
int indexOf(Object x);
2evuelve la posición de la primera ocurrencia de ese elemento.
int lasIndexOf(Object x);
2evuelve la posición de la #ltima ocurrencia de ese elemento.
8tros métodos para LinkedList%
get9irst"$' get-ast"$' remove9irst"$' remove-ast"$' add9irst"$' add-ast"$

java.util.Map
(o +ereda de &ollection' sin embargo se utiliza para tratar colecciones de objetos.
6epresenta colecciones de valores con parejas de objetos' formados por una clave y un
valor. "-a clave +a de ser String$.
3mplementa las clases%
Hash.a'
8frece un tiempo de acceso óptimo cuando dic+o acceso es aleatorio.
Su orden de inserción e iteración es imprevisible.
LinkedHash.a' 3teración seg#n orden de inserción.
Tree.a'
Su inserción e iteración depender! de la implantación o no del método
&ompare,o"$.

/ade los métodos%
Object put(Object clave, Object valor);
3nserta una pareja.
Object get(Object clave);
/ccede al valor de una clave.

- 2-
Object remove(Object clave);
.limina una pareja.
boolean containsKey(Object clave);
&omprueba la e7istencia de una clave.
boolean containsValue(Object valor);
&omprueba la e7istencia de un valor
int size();
(#mero de parejas.
Public Set KeySet();
2evuelve todas las claves


3orma de recorrer una colecci4n de ti'o .a'!




Set s = codigos.keySet();
Iterator it = s.iterator();
While (it.hasNext()){
String aux= (String) it.next();
System.out.println(aux + " : " + codigos.get(aux));
}