Sei sulla pagina 1di 4

Programación Orientada a Objetos – Colecciones Diferentes a ArrayList

 Clase Hashtable
 El Collections Framework de Java

Actualmente en la programación orientada a objetos conocemos las colecciones


de objetos basadas en el ArrayList, pero hay otras colecciones que no
necesariamente utilizan esta clase. Existen otras clases que pueden ser utilizadas
para realizar una colección de objetos, podemos encontrar varias clases de este
tipo en versiones superiores a la 1.2 del JDK de java.

Clase Hashtable.

Esta clase está basada en claves y no tiene definida posiciones numéricas, en el


caso de ArrayList nosotros utilizamos posiciones numéricas para identificar los
elementos que están dentro de la misma, pero en Hashtable nosotros utilizamos
una clave que identifica al objeto de una forma única dentro de la colección. Esta
clave puede ser cualquier clase de objeto.

Para las claves se debe implementar los métodos hashCode() y equals(), esto se
hace para realizar búsquedas y comparaciones dentro de la colección. El método
hashCode() asigna y devuelve un valor entero distinto y único para cada clave,
que durante la ejecución nunca va a cambiar, pero puede cambiar de una
ejecución a otra, de hecho las hash tables son un tipo de tablas que mantienen
una nueva colección de las claves únicas de la colección principal y los valores
únicos enteros que tiene cada una de ellas, de esta forma podemos realizar una
búsqueda de forma más eficiente, más precisa.

El objeto Hashtable tiene dos variables, la primera es capacity y la segunda es


load factor. Cuando se crea una Hashtable es recomendado iniciar de una que
sea lo suficientemente grande para la aplicación que le va a dar ya que si no es lo
suficientemente grande el número de elementos supera la dos variable nombradas
anteriormente, entonces nuestra Hashtable empieza a crecer llamando al método
rehash(). También es muy importante saber que si el load factor es muy grande
apurara la memoria, pero esto reduce la calidad de búsqueda.
Ejemplo Básico de la definición de Hashtable:
Hashtable numeros = new Hashtable();
numbers.put("uno", new Integer(1));
numbers.put("dos", new Integer(2));
numbers.put("tres", new Integer(3));

Aquí podemos encontrar los métodos utilizados en esta clase

Métodos Función que realizan


Hashtable(), Hashtable( int nElements ), Constructores
Hashtable( int nElements, float loadFactor)
int size() Devuelve el tamaño de la tabla
boolean isEmpty() Indica si la tabla esta vacía
Enumeration keys() Devuelve una Enumeration con las claves
Enumeration elements() Devuelve una Enumeration con los valores
boolean contains( Object value ) Indica si hay alguna clave que corresponde con el valor
boolean containsKey( Object key ) Indica si existe esa clave en la tabla
Object get( Object key ) Devuelve un valor dada la clave
void rehash() Amplía la capacidad de la tabla
Object put( Object key, Object value ) Establece una relación clave-valor
Object remove( Object key ) Elimina un valor por la clave
void clear() Limpia la tabla
Object clone() Hace una copia de la tabla
String toString() Devuelve un string representado en la tabla

El Collections Framework de Java

Desde la versión 1.2 del JDK de Java esta implementado el Java Framework
Collections; esto se trata de un grupo o conjunto de clases e interfaces que
mejoran las capacidades con respecto a estructuras de datos; estas funciones dan
un claro ejemplo de lo que viene a ser la programación orientada a objetos, dada
la cantidad de elementos y funciones que contiene el Java Framework
Collections damos a conocer sus jerarquías tanto de las clases como de las
interfaces.
Proporcionadas por la Universidad de Navarra.

Interfaces de la Java Collection Framework (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

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: Esta clase está incluida en la JCF, e intentamos hablar de
formas de colección de objetos diferentes a ella.
 LinkedList: Interface List implementada mediante una lista vinculada
 HashMap: Interface Map implementada desde una hash table
 WeekHashMap: Interface Map implementada de tal modo que la
memoria donde se almacenan las claves y valores se pueda liberar
cuando las claves no tengan referencia del exterior de la misma
 TreeMap: Interface SortedMap implementada mediante un árbol
binario.
Bibliografía:

 Aprenda Java Como si Estuviera en Primero


 http://docs.oracle.com/javase/tutorial/collections/
 http://docs.oracle.com/javase/8/docs/technotes/guides/collections/overview.
html

Potrebbero piacerti anche