Sie sind auf Seite 1von 4

TIPOS DE COLECCIONES

Las colecciones son una especie de arrays de tamao dinmico. Para usarlas haremos
uso del Java Collections Framework (JCF), el cual contiene un conjunto de clases e
interfaces del paquete java.util para gestionar colecciones de objetos.
-

Collection
Contenedor simple de objetos no ordenados.
Los duplicados son permitidos
int size()
boolean empty()
boolean contains(Object elem)
Iterator iterator()
Object[] toArray()
Object[] toArray(Object dest[])
boolean add(Object elem)
boolean remove(Object elem)
void clear()
Listas: Una lista ordenada, o secuencia. Normalmente permiten duplicados y
tienen acceso aleatorio (es decir, puedes obtener elementos alojados en cualquier
ndice como si de un array se tratase).
void add(int index, Object element)
Object remove(int index)
Object get(int index)
Object set(int index, Object element)
int indexOf(Object o)
int lastIndexOf(Object o)
List subList(int min, int max)
Sets: Colecciones que no admiten dos elementos iguales. Es decir, colecciones
que no admiten que un nuevo elemento B pueda aadirse a una coleccin que
tenga un elemento A cuando A.equals(B).
Maps: Colecciones que asocian un valor a una clave. Parecido a la estructura de
array asociativo que se encuentra en otros lenguajes. Un Map no puede tener
dos claves iguales.
Object put(Object key, Object value)
Object remove(Object key)
Object get(Object key)
containsKey, containsValue
isEmpty
size
Proporciona tres vistas de coleccin: coleccin de claves (keySet),
coleccin de valores (values), coleccin de asociaciones clave-valor
(entrySet).

A la hora de usar colecciones en Java, lo ms importante es elegir el tipo de coleccin.


Cuando trabajemos con colecciones, siempre declararemos las instancias con el nombre
de su interfaz, aprovechando el enlace dinmico.

De esta forma, aunque la implementacin cambie en el futuro, podemos tener claro que
la aplicacin no va a dar fallos.

UTILIDAD

public static Object min(Collection col)


public static Object max(Collection col)
public static Object min(Collection col, Comparator comp)
public static Object max(Collection col, Comparator comp)
public static void reverse(List lista): Invierte la lista.
public static void copy(List dst, List fnt)
public static void sort(List lista): Ordena una lista utilizando un algoritmo
merge sort.
public static void sort(List lista, Comparator comp)
public static int binarySearch(List lista, Object clave, Comparator comp)
int binarySearch(List list, Object key): Busca un elemento en una lista
ordenada utilizando un algoritmo de bsqueda binaria. El mtodo devuelve un
entero indicando la posicin en la que se encuentra el elemento, o bien un
nmero negativo si no se encontr. Este nmero negativo indica la posicin la
que se encontrara el elemento de haber estado en la coleccin.
ITERADORES DE UNA COLECCIN
La interface iterable est incluida en el api de Java, en concreto en el paquete java.lang.
Es una interfaz de uso habitual al igual que el caso de las interfaces Cloneable y
Comparable que ya hemos explicado. Implementar Iterable tan slo obliga a
sobreescribir un mtodo que es iterator(). Este mtodo debe devolver un objeto de tipo
Iterator. Vamos a explicar la terminologa porque puede parecer confusa.
Collection >> Iterator iterator();
interface Iterator
{
boolean hasNext();
/* Devuelve true si la iteracin tiene mas elementos */
Object next();

/* Devuelve el siguiente elemento de la iteracin Lanza excepcin


NoSuchElementException */
void remove();
/* Elimina el ltimo elemento devuelto por la iteracin Est capacitado
para decir que no lo implementa UnsupportedOperationException */
}
La interfaz ListIterator extiende a Iterator y maneja un objeto List ordenado.
Permite iterar hacia delante y hacia atrs.
EJERCICIO PRCTICO
USO DE LA COLLECCION
A continuacin se presenta un sencillo ejemplo de como se utiliza una coleccin:
// A.java
public class A {
protected int a = 0;
public A() {};
public A(int a) { this.a = a; }
public void getA() {
System.out.println("Clase A, valor: "+a);
}
}
// B.java
class B extends A {
public B() { super(0); }
public B(int a) { super(a); }
public void getA() {
System.out.println("Clase B, valor:"+a);
}
}
// Coleccion.java
import java.util.ArrayList;
import java.util.Iterator;
public class Coleccion
{
public static void main(String args[])
{
ArrayList al = new ArrayList();
for(int i = 0; i < 10; i += 2)
al.add(new A(i));
for(int i = 1; i < 10; i += 2)
al.add(new B(i));
A a = null;
Iterator it = al.iterator();
while(it.hasNext() == true)
{
a = (A)it.next();

a.getA(); }
}
}
Al ejecutar este programa observaras la siguiente salida. Fjate que aunque en el
ArrayList hemos aadido objetos de las clases A y B, realmente se han almacenado
como referencias a Object, de tal modo que cuando los hemos recuperado con next()
hemos tenido que hacer un casting.
Clase A, valor: 0
Clase A, valor: 2
Clase A, valor: 4
Clase A, valor: 6
Clase A, valor: 8
Clase B, valor:1
Clase B, valor:3
Clase B, valor:5
Clase B, valor:7
Clase B, valor:9
USO DEL ITERADOR
Clculo del gasto total de un departamento
public double gastoDpto()
{
double gasto=0;
Iterator it=plantilla.iterator();
while (it.hasNext())
{
gasto+=((Empleado)it.next()).getSueldo();
}
return gasto;
}
Siendo plantilla una coleccin que implemente la interfaz Collection
BIBLIOGRAFIA
-

http://www.luaces-novo.es/guia-de-colecciones-en-java/
http://programacion.jias.es/2011/10/colecciones-genericos-en-java/
http://dis.um.es/~bmoros/privado/practicas/Curso05-06/seminario5curso0506.pdf
http://mundogeek.net/archivos/2009/03/16/colecciones-en-java/

Das könnte Ihnen auch gefallen