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