|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectuoc.ei.tads.TaulaDispersio<C,E>
public class TaulaDispersio<C,E>
Classe que implementa les operacions d'un diccionari mitjançant una taula de dispersió indirecta, coneguda amb el nom de taula encadenada oberta (separate chaining). Segurament és la manera més senzilla de resoldre les col·lisions. Per la funció de dispersió s'accedeix a l'índex del vector i els sinònims s'encadenen a partir d'aquesta posició. Els diccionaris són estructures que emmagatzemen elements amb una clau associada. La clau ha de disposar d'una operació d'igualtat i l'element associat a la clau pot ser qualsevol objecte. En aquesta implementació s'utilitzen elements de la classe ClauValor que sobreescriu, per delegació en la clau, la funció hashCode().
ClauValor
,
Serialized FormNested Class Summary | |
---|---|
protected static class |
TaulaDispersio.RecorregutNodes<C,E>
Classe que proporciona un recorregut de les posicions. |
Field Summary | |
---|---|
static int |
MIDA_TAULA_PER_DEFECTE
Mida per defecte de la taula de dispersió. |
protected int |
n
Nombre d'elements que hi ha actualment al contenidor. |
protected LlistaEncadenada<ClauValor<C,E>>[] |
taula
Vector de nodes encadenats. |
Constructor Summary | |
---|---|
TaulaDispersio()
Constructor sense paràmetres (mida de la taula per defecte). |
|
TaulaDispersio(int mida)
Constructor amb un paràmetre. |
Method Summary | |
---|---|
void |
afegir(C clau,
E elem)
Afegeix un element amb una clau associada, si es pot. |
protected int |
calcularIndexTaula(C clau)
|
protected Posicio<ClauValor<C,E>> |
cercarClauEnSinonims(LlistaEncadenada<ClauValor<C,E>> sinonims,
C clau)
|
Iterador<C> |
claus()
Accessor de lectura dels elements que hi ha al contenidor. |
E |
consultar(C clau)
Accesor de lectura de l'element associat amb una clau. |
protected LlistaEncadenada<ClauValor<C,E>> |
creaLlistaDeSinonims(int index,
ClauValor<C,E> kv)
|
Iterador<E> |
elements()
Accessor de lectura dels elements que hi ha al contenidor. |
E |
esborrar(C clau)
Esborra la primera clau coincident i l'element associat, si es pot. |
protected void |
esborrarLlistaDeSinonims(int index)
|
boolean |
estaBuit()
Mètode per a comprovar si el contenidor està buit. |
boolean |
hiEs(C clau)
Comprova si hi ha un element amb una determinada clau. |
int |
nombreElems()
Accessor de lectura del nombre d'elements que hi ha al contenidor. |
java.lang.String |
toString()
Mètode que sobreescriu Object.toString(). |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final int MIDA_TAULA_PER_DEFECTE
protected int n
protected LlistaEncadenada<ClauValor<C,E>>[] taula
Constructor Detail |
---|
public TaulaDispersio()
public TaulaDispersio(int mida) throws ExcepcioParametreIncorrecte
mida
- mida de la taula de dispersió
ExcepcioParametreIncorrecte
- si la mida és negativaMethod Detail |
---|
public int nombreElems()
nombreElems
in interface Contenidor<E>
public boolean estaBuit()
estaBuit
in interface Contenidor<E>
public void afegir(C clau, E elem)
afegir
in interface Diccionari<C,E>
clau
- clau associada a l'element que es vol afegirelem
- element que es vol afegir al diccionari
ExcepcioTADs
- si la clau és nullClauValor
public boolean hiEs(C clau)
hiEs
in interface Diccionari<C,E>
clau
- clau associada a un element
public E consultar(C clau)
consultar
in interface Diccionari<C,E>
clau
- clau de referència
ExcepcioElementsNoComparables
- si l'element és no
comparableClauValor
public E esborrar(C clau)
esborrar
in interface Diccionari<C,E>
clau
- clau de referència
ExcepcioContenidorBuit
- si la taula està buida
ExcepcioElementsNoComparables
- si l'element és no
comparableClauValor
protected int calcularIndexTaula(C clau)
protected LlistaEncadenada<ClauValor<C,E>> creaLlistaDeSinonims(int index, ClauValor<C,E> kv)
protected void esborrarLlistaDeSinonims(int index)
protected Posicio<ClauValor<C,E>> cercarClauEnSinonims(LlistaEncadenada<ClauValor<C,E>> sinonims, C clau)
public Iterador<C> claus()
for ( Iterador it = tad.elements(); it.hiHaSeguent(); ) System.out.println(it.seguent());Enumerar és simplement enunciar l'una darrere l'altra (les coses d'una sèrie, les parts d'un tot). Però si el contenidor té definit algun tipus d'ordenació o de recorregut, l'enumeració ha de ser conseqüent i oferir els elements per ordre (FIFO, LIFO, inordre, etc.), sense alterar l'estat actual del contenidor.
claus
in interface Diccionari<C,E>
Iterador.hiHaSeguent()
,
Iterador.seguent()
public Iterador<E> elements()
for ( Iterador it = tad.elements(); it.hiHaSeguent(); ) System.out.println(it.seguent());Enumerar és simplement enunciar l'una darrere l'altra (les coses d'una sèrie, les parts d'un tot). Però si el contenidor té definit algun tipus d'ordenació o de recorregut, l'enumeració ha de ser conseqüent i oferir els elements per ordre (FIFO, LIFO, inordre, etc.), sense alterar l'estat actual del contenidor.
elements
in interface Contenidor<E>
Iterador.hiHaSeguent()
,
Iterador.seguent()
public java.lang.String toString()
toString
in class java.lang.Object
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |