Professional Documents
Culture Documents
II
Hay veces que los arreglos no son adecuados o suficientes por caractersticas del problema que hay que resolver. Puede ser que se necesite almacenar elementos, pero que no se sepa cuntos elementos se van a tener, en este caso, un arreglo con numero fijo de elementos no es adecuado. Para solucionar estos problemas surgen las tpicas agrupaciones de elementos, pilas, colas, tablas hash, conjuntos, etc.
Para estos tipos de agrupaciones, Java proporciona las llamadas Collectiones (Colecciones) que proporcionan varias abstracciones para conjuntos (Set), listas (List), tablas hash (Map), etc.
La jerarqua Collection.Collection es una interfaz no una clase; la diferencia entre clase e interfaz es que una interfaz es una clase que no tiene implementados sus mtodos.
Public interfaz Collection{ boolean add(Object o); boolean addAll(Collection c); void clear(); boolean contains(Object o); boolean containsAll(Collection c); boolean equals(Object o); int hashCode(); boolean isEmpty(); Iterator iterator(); boolean remove(Object o); boolean removeAll(Collection c); boolean retainAll(Collection c); int size(); Object[ ] toArray(); Object[ ] toArray(Object[ ] a); }
Todas las colecciones se encuentran en el paquete java.util.* java.util.Collection es la raiz de la jerarqua de las colecciones Existirn especializaciones que permitan elementos duplicados o no, que permitan ordenar los elementos o no, etc. Esta clase contiene la definicin de todos los mtodos genricos que deben implementar las colecciones.
elementos.
o boolean addAll(Collection c): Aadir todos esos elementos. o boolean removeAll(Collection c): Borra todos esos elementos. o boolean retainAll(Collection c): Borrar todos los elementos menos
esos concretos.
o void clear(): Borrar todos los elementos.
Las colecciones no permiten el uso de tipos primitivos; por lo que, si necesitamos trabajar con ellos habr qeu usar los Wrappers de tipos primitivos.
El interfaz Iterator representa un componente que permite iterar sobre los elementos de una colecin. Todas las colecciones ofrecen una implementacin de Iterator por medio del mtodo:
o public Iterator iterator();
apuntando al siguiente. o void remove(): Elimina el primer elemento y se queda apuntando al siguiente.
El interfaz Set hereda del interfaz Collection. Pero no aade la definicin de ningn mtodo nuevo. Representan colecciones que no permiten tener elementos duplicados. Para saber si un elemento est duplicado, hace uso del mtodo:
o public boolean equals(Object elemento);
java.util.HashSet (SDK 1.2.X.): o Ofrece el acceso ms rpido cuando dicho acceso es aleatorio. o Su orden de iteracin es impredecible. java.util.LinkedHashSet (SDK 1.4.X.): o Su orden de iteracin es el orden de insercin. java.util.TreeSet (SDK 1.2.X.): o Su orden de iteracin depende de la implementacion que los elementos hagan del interfaz java.lang.Comparable.
o public int compareTo(Object elemento);
El interfaz List hereda del interfaz Collection. Representan colecciones con elementos en secuencia. Es decir, con orden. Permite tener duplicados. Es accesible mediante indice, de manera que se puede: o Acceder a un elemento concreto de una posicin. o Insertar un elemento en una posicin concreta.
elemento de esa posicin con ese elemento. o void add(int index, Object elemento): Inserta ese elemento en esa posicin. o Object remove(int index): Elimina el elemento de esa posicin. o boolean addAll(int index, Collection c): Inserta todos esos elementos en esa posicin.
primera ocurrencia de ese elemento. o int lastIndexOf(Object elemento): Devuelve la posicion de la ultima ocurrencia de ese elemento.
Subcolecciones:
o List subList(int from, int to): Devuelve una lista con los
java.util.ArrayList (SDK 1.2.X.): o Ofrece un tiempo de acceso ptimo cuando dicho acceso es aleatorio. java.util.LinkedList (SDK 1.2.X.): o Ofrece un tiempo de acceso ptimo cuando dicho acceso es para aadir o eleminar elementos del comienzo y final de la lista (tipico para pilas). java.util.Vector: o Es como el ArrayList pero sincronizando lo que penaliza notablemente el rendimiento. o La sincronizacin es importante cuando mas de un thread (hilo de ejecucin) va a acceder a la colecin.
El interfaz Map no hereda del interfaz Collection. Representa colecciones con parejas de elementos: clave y valor. No permite tener claves duplicadas. Pero si valores duplicados. Para calcular la colocacin de un elemento se basa en el uso del mtodo.
o public int hashCode();
una clave. o boolean containsValue(Object value): Comprueba la existencia de un valor. o int size(): Nmero de parejas. o boolean isEmpty(): Si no contiene ninguna pareja.
Collection.
aleatorio.
java.util.Hashtable:
o Es la versin sincronizada de HashMap.
java.util.TreeMap:
o Su orden de iteracin depende de la implementacin que los
Arreglo Tamao esttico. Su tamao se conoce mediante el atributo length. Puede almacenar tanto tipos primitivos como tipos complejos. Solo puede albergar elementos de un tipo.
Coleccin Tamao dinmico. Su tamao se conoce mediante el mtodo size(). Solo puede almacenar tipos complejos. Puede albergar elementos de distinto tipo.