Salve ragazzi,ho bisogno di qualche chiarimento circa l'utilizzo di un iteratore...allora mi viene chiesto di implementare una classe TabellaHashLL<S>(cioè una tebella hash con collisioni),che implementa l'interfacci Dictionary<S>.Quest'ultima implementa itarable,quindi TabellaHashLL<S> sarà cos' fatta:
public class TabellaHashLL<S, R> implements Dictionary<S> {
LinkedList<R> elementi[];
Hash fHash;
public TabellaHashLL( int n,Hash f) { //è GIUSTO IL COSTRUTTORE??????
fHash=f;
elementi= (LinkedList<R>[]) new Object[n] ;
// TODO Auto-generated constructor stub
}
@Override
public void insert(S e, Comparable k) {
// TODO Auto-generated method stub
int pos= fHash.h(k,elementi.length);
if(elementi[pos]==null){
elementi[pos]=new LinkedList();
((Dictionary<S>) elementi[pos]).insert(e,k);
}
}
@Override
public void delete(Comparable k) {
// TODO Auto-generated method stub
int pos=fHash.h(k, elementi.length);
if(elementi[pos]==null)
return;
((Dictionary<S>) elementi[pos]).delete(k);
}
@Override
public S search(Comparable k) { // COME FARESTE IL SEARCH?????
// TODO Auto-generated method stub
return null;
}
@Override
public Iterator<S> iterator() {
// TODO Auto-generated method stub
return new TabellaHashIterator<S>();// A QUESTO PUNTO IMPLEMENTIAMO LA CLASSE TabellaHashIterator<S>(),QUALE PARAMETRO SI METTE NELLE PARENTESI TONDE???
ALLORA MI AIUTATE A CAPIRE GLI ATTRIBUTI E IL COSTRUTTORE DI QUESTA CLASSE QUALI SONO???
I METODI SARANNO HASNEXT,NEXT E REMOVE SO QUELLO CHE FANNO MA NON CAPISCO COME IMPLEMENTARLI,MI FARESTE DEGLI ESEMPI.
FORSE VI STO CHIEDENDO TROPPO,MA HO URGENTEMENTE BISOGNO DI QUESTI CHIARIMENTI...VI RINGRAZIO TANTO TANTO ANTIIPATAMENTE!!!!
public class TabellaHashLL<S, R> implements Dictionary<S> {
LinkedList<R> elementi[];
Hash fHash;
public TabellaHashLL( int n,Hash f) { //è GIUSTO IL COSTRUTTORE??????
fHash=f;
elementi= (LinkedList<R>[]) new Object[n] ;
// TODO Auto-generated constructor stub
}
@Override
public void insert(S e, Comparable k) {
// TODO Auto-generated method stub
int pos= fHash.h(k,elementi.length);
if(elementi[pos]==null){
elementi[pos]=new LinkedList();
((Dictionary<S>) elementi[pos]).insert(e,k);
}
}
@Override
public void delete(Comparable k) {
// TODO Auto-generated method stub
int pos=fHash.h(k, elementi.length);
if(elementi[pos]==null)
return;
((Dictionary<S>) elementi[pos]).delete(k);
}
@Override
public S search(Comparable k) { // COME FARESTE IL SEARCH?????
// TODO Auto-generated method stub
return null;
}
@Override
public Iterator<S> iterator() {
// TODO Auto-generated method stub
return new TabellaHashIterator<S>();// A QUESTO PUNTO IMPLEMENTIAMO LA CLASSE TabellaHashIterator<S>(),QUALE PARAMETRO SI METTE NELLE PARENTESI TONDE???
ALLORA MI AIUTATE A CAPIRE GLI ATTRIBUTI E IL COSTRUTTORE DI QUESTA CLASSE QUALI SONO???
I METODI SARANNO HASNEXT,NEXT E REMOVE SO QUELLO CHE FANNO MA NON CAPISCO COME IMPLEMENTARLI,MI FARESTE DEGLI ESEMPI.
FORSE VI STO CHIEDENDO TROPPO,MA HO URGENTEMENTE BISOGNO DI QUESTI CHIARIMENTI...VI RINGRAZIO TANTO TANTO ANTIIPATAMENTE!!!!