En la versión 1.2 del JDK se introdujo el Java Framework Collections o "estructura de colecciones
de Java" (en adelante JCF). Se trata de un conjunto de clases e interfaces que mejoran notablemente
las capacidades del lenguaje respecto a estructuras de datos. Además, constituyen un excelente
ejemplo de aplicación de los conceptos propios de la programación orientada a objetos. Dada la
amplitud de Java en éste y en otros aspectos se va a optar por insistir en la descripción general,
dejando al lector la tarea de buscar las características concretas de los distintos métodos en la
documentación de Java. En este apartado se va a utilizar una forma -más breve que las tablas
utilizadas en otros apartados- de informar sobre los métodos disponibles en una clase o interface.
La Figura 4.1 muestra la jerarquía de interfaces de la Java Collection Framework (JCF). En
letra cursiva se indican las clases que implementan las correspondientes interfaces. Por ejemplo, hay
dos clases que implementan la interface Map. HashMap y Hashtable.
Las clases vistas en los apartados anteriores son clases "históricas", es decir, clases que
existían antes de la versión JDK 1.2. Dichas clases se denotan en la Figura 4.1 con la letra "h" entre
paréntesis. Aunque dichas clases se han mantenido por motivos de compatibilidad, sus métodos no
siguen las reglas del diseño general del JCF: en la medida de lo posible se recomienda utilizar las
nuevas clases.
En el diseño de la JCF las interfaces son muy importantes porque son ellas las que determinan
las capacidades de las clases que las implementan. Dos clases que implementan la misma interface
se pueden utilizar exactamente de la misma forma. Por ejemplo, las clases ArrayList y LinkedList
disponen exactamente de los mismos métodos y se pueden utilizar de la misma forma. La diferencia
está en la implementación: mientras que ArrayList almacena los objetos en un array, la clase
LinkedList los almacena en una lista vinculada. La primera será más eficiente para acceder a un
elemento arbitrario, mientras que la segunda será más flexible si se desea borrar e insertar
elementos.
La Figura 4.2 muestra la jerarquía de clases de la JCF. En este caso, la jerarquía de clases es
menos importante desde el punto de vista del usuario que la jerarquía de interfaces. En dicha figura
se muestran con fondo blanco las clases abstractas, y con fondo gris claro las clases de las que se
pueden crear objetos.
No hay comentarios:
Publicar un comentario