Elementos del Java Collections Framework

Interfaces de la JCF: Constituyen el elemento central de la JCF.

Collection: define métodos para tratar una colección genérica de elementos

Set: colección que no admite elementos repetidos

SortedSet: set cuyos elementos se mantienen ordenados según el criterio establecido

List: admite elementos repetidos y mantiene un orden inicial

Map: conjunto de pares clave/valor, sin repetición de claves

SortedMap: map cuyos elementos se mantienen ordenados según el criterio establecido

Interfaces de soporte:

Iterator: sustituye a la interface Enumeration. Dispone de métodos para recorrer una colección y para borrar elementos.

ListIterator: deriva de Iterator y permite recorrer lists en ambos sentidos.

Comparable: declara el método compareTo() que permite ordenar las distintas colecciones según un orden natural (String, Date, Integer, Double, …).

Comparator: declara el método compare() y se utiliza en lugar de Comparable cuando se desea ordenar objetos no estándar o sustituir a dicha interface.

Clases de propósito general: Son las implementaciones de las interfaces de la JFC.

HashSet: Interface Set implementada mediante una hash table.

TreeSet: Interface SortedSet implementada mediante un árbol binario ordenado.

ArrayList: Interface List implementada mediante un array.

LinkedList: Interface List implementada mediante una lista vinculada.

HashMap: Interface Map implementada mediante una hash table.

WeakHashMap: Interface Map implementada de modo que la memoria de los pares clave/valor pueda ser liberada cuando las claves no tengan referencia desde el exterior de la WeakHashMap.

TreeMap: Interface SortedMap implementada mediante un árbol binario

Clases Wrapper: Colecciones con características adicionales, como no poder ser modificadas o estar sincronizadas. No se accede a ellas mediante constructores, sino mediante métodos “factory” de la clase Collections.

Clases de utilidad: Son mini-implementaciones que permiten obtener sets especializados, como por ejemplo sets constantes de un sólo elemento (singleton) o lists con n copias del mismo elemento (nCopies). Definen las constantes EMPTY_SET y EMPTY_LIST. Se accede a través de la clase Collections.

Clases históricas: Son las clases Vector y Hashtable presentes desde las primeras versiones de Java. En las versiones actuales, implementan respectivamente las interfaces List y Map, aunque conservan también los métodos anteriores.

Clases abstractas: Son las clases abstract de la Figura 4.2. Tienen total o parcialmente implemen-tados los métodos de la interface correspondiente. Sirven para que los usuarios deriven de ellas sus propias clases con un mínimo de esfuerzo de programación.

Algoritmos: La clase Collections dispone de métodos static para ordenar, desordenar, invertir orden, realizar búsquedas, llenar, copiar, hallar el mínimo y hallar el máximo.

Clase Arrays: Es una clase de utilidad introducida en el JDK 1.2 que contiene métodos static para ordenar, llenar, realizar búsquedas y comparar los arrays clásicos del lenguaje. Permite también ver los arrays como lists.

Después de esta visión general de la Java Collections Framework, se verán algunos detalles de las clases e interfaces más importantes.

Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra