Java Collections API – Set – Segunda Parte

La interfaz Set

La Interfaz Set es una subclase de la interfaz  java.utilCollection. Representa un set de objetos, donde estos objetos no se pueden repetir, no nos interesa el orden de estos elementos,

Por que usar Set?

Muchas veces usamos List para guardar una lista de elementos, después de todo , List dispone del método contains() que nos permite ver si algún elemento esta en la lista y nos basta para mantener la condición de si el elemento esta presente o no, y de esta forma agregar o no el elemento en cuestión, siendo así , cual es el punto de utilizar Set?

Bien la respuesta es simple eficiencia.

Si solo necesitamos el criterio de que este presente o no y no necesitamos alguna funcionalidad extra (como orden) entonces es posible utilizar una estructura mas eficiente, esto es lo que la implementaciónes Set nos ofrece.

La interfaz List dispone de 3 implementaciones generales de Set:

HashSet, TreeSet y LinkedHashSet.

HashSet, almacena sus elementos en una tabla Hash, no permite duplicados ni aplica orden alguno a sus elementos.

TreeSet, guardar sus elementos en un árbol, ordenando sus elementos en base a sus valores, y por lo tanto es más lento que un HashSet.

LinkHashSet, por otro lado es implementada por una tabla Hash con una lista enlazada a través de ella, ordenando sus elementos en base a como han sido insertados.
LinkedHashSet tiene un costo más alto de rendimiento que un HashSet.

Algunos de los métodos de la interfaz Set son los siguientes:

  • add(Object o): añade el objeto pasado por parámetro al Set siempre que éste no exista ya, y devuelve un booleano.
  • clear(): Elimina a todos los elementos del Set.
  • contains(Object o): devuelve true si el Set contiene el objeto pasado por parámetro. Para ello, se compara de forma interna con el método equals (o.equals(x);) o con el método hashCode().
  • isEmpty(): devuelve true si el Set está vacío.
  • iterator(): devuelve un iterador
  • remove(Object o): elimina el objeto pasado por parámetro si existe y devuelve un booleano.
  • size(): devuelve un entero que es el número de elementos del Set.

TIJ325

La interfaz SortedSet extiende de la interfaz Set y añade una serie de métodos, entre los que hay que destacar:

  • comparator(): obtiene el objeto pasado al constructor para establecer el orden; si se emplea el orden natural definido por la interface Comparable, devuelve null;
  • first() / last(): devuelve el primer o el último elemento del conjunto.

Descargar código de ejemplo  SortedSet TreeSet HashSet

Fuentes:

http://www.cs.hut.fi

http://vayajava.blogspot.com.ar

http://www.java2s.com

http://tutorial.saviasoft.com

Anuncios

Etiquetas: , , , , ,

About exequielc

Hola! Estás en el blog de Exequiel Catalani. Como es un blog, se trata de una extensión más o menos lineal de las cosas que hago y pasan por mi cabeza: ciberculturas, videos de la red, nuevos medios y tecnologia, y Programacion etc...

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: