uoc.ei.tads
Class ConjuntoTablaImpl<E>

java.lang.Object
  extended by uoc.ei.tads.ConjuntoAbstracto<E>
      extended by uoc.ei.tads.ConjuntoTablaImpl<E>
All Implemented Interfaces:
java.io.Serializable, Conjunto<E>, Contenedor<E>

public class ConjuntoTablaImpl<E>
extends ConjuntoAbstracto<E>

Clase que implementa las operaciones básicas de un conjunto por delegación en una tabla de dispersión. Los conjuntos son estructuras que almacenan elementos no repetidos. La clase de los objetos debe disponer de una operación de igualdad.

See Also:
Serialized Form

Field Summary
protected  TablaDispersion<E,E> td
          Tabla de dispersión que implementa las operaciones por delegación.
 
Constructor Summary
ConjuntoTablaImpl()
          Constructor sin parámetros (medida de la tabla por defecto).
ConjuntoTablaImpl(int tamano)
          Constructor con un parámetro (tabla del tamaño dado).
 
Method Summary
 E borrar(E elem)
          Borra la clave y el elemento asociado, si se puede.
 Iterador<E> elementos()
          Accesor de lectura de los elementos que hay en el contenedor.
 boolean esta(E elem)
          Comprueba si hay un elemento con una determinada clave.
 boolean estaVacio()
          Método para comprobar si el contenedor está vacío.
 void insertar(E elem)
          Añade un elemento, si se puede.
 int numElems()
          Accesor de lectura del número de elementos que hay al contenedor.
 java.lang.String toString()
          Método que sobrescribe Object.toString().
 
Methods inherited from class uoc.ei.tads.ConjuntoAbstracto
diferencia, interseccion, union
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

td

protected TablaDispersion<E,E> td
Tabla de dispersión que implementa las operaciones por delegación.

Constructor Detail

ConjuntoTablaImpl

public ConjuntoTablaImpl()
Constructor sin parámetros (medida de la tabla por defecto).


ConjuntoTablaImpl

public ConjuntoTablaImpl(int tamano)
Constructor con un parámetro (tabla del tamaño dado).

Parameters:
tamano - tamaño de la tabla de dispersión
Throws:
ExcepcionParametroIncorrecto - si el tamaño es negativo
Method Detail

numElems

public int numElems()
Accesor de lectura del número de elementos que hay al contenedor.

Returns:
número de elementos que contiene actualmente

estaVacio

public boolean estaVacio()
Método para comprobar si el contenedor está vacío.

Returns:
cierto o falso, según si está vacío o no lo está

insertar

public void insertar(E elem)
Añade un elemento, si se puede. Utiliza el mismo elemento como clave y como valor.

Parameters:
elem - elemento que se quiere añadir al conjunto

esta

public boolean esta(E elem)
Comprueba si hay un elemento con una determinada clave.

Parameters:
elem - elemento
Returns:
cierto o falso, según si encuentra o no encuentra la clave
Throws:
ExcepcionContenedorVacio - si la tabla está vacía
ExcepcioElementsNoComparables - si el elemento es no comparable

borrar

public E borrar(E elem)
Borra la clave y el elemento asociado, si se puede.

Parameters:
elem - elemento a borrar
Returns:
elemento borrado asociado con la clave; o null, si no estaba
Throws:
ExcepcionContenedorVacio - si la tabla está vacía
ExcepcioElementsNoComparables - si el elemento es no comparable
See Also:
ClaveValor

elementos

public Iterador<E> elementos()
Accesor de lectura de los elementos que hay en el contenedor. Retorna una enumeración. Enumerar es simplemente enunciar la una detrás la otra (las cosas de una serie, las partes de un todo). Pero si el contenedor tiene definido algún tipo de ordenación o de recorrido, la enumeración debe ser consecuente y ofrecer los elementos por orden (FIFO, LIFO, inordre, etc.), sin alterar el estado actual del contenedor.

Returns:
enumeración de los elementos asociados con las claves
Throws:
ExcepcionPosicionInvalida - si se quiere obtener el siguiente elemento de la enumeración y éste no existe
See Also:
Iterador.haySiguiente(), Iterador.siguiente()

toString

public java.lang.String toString()
Método que sobrescribe Object.toString(). Separa un par del siguiente con el salto de línea de la plataforma.

Overrides:
toString in class java.lang.Object