Ciao a tutti.
devo sviluppare una classe che utilizzi una lista concatenata a puntatori espliciti.
Vi espongo il mio problema :
Ho una classe "ContenitoreDatiAstratto" che implementa un'interfaccia "ContenitoreDati" ; questa interfaccia estende Iterable
codice:
package poo.data;
public interface ContenitoreDati<E> extends Iterable<E> {
void aggiungi(E elem);
boolean aggiungi(ContenitoreDati<E> cd, Criterio<E> c);
boolean aggiungi(ContenitoreDati<E> cd, Criterio<E> c, Funzione<E> f);
boolean rimuovi(E elem);
boolean rimuovi(Criterio<E> c);
ContenitoreDati<E> estrai(Criterio<E> c);
ContenitoreDati<E> estraiETrasforma(Criterio<E> c, Funzione<E> f);
void applica(Funzione<E> f);
void applica(Funzione<E> f, Criterio<E> c);
int size();
}
codice:
public abstract class ContenitoreDatiAstratto<E> implements ContenitoreDati<E>{
....
.....
}
Mi si chiede di scrivere una classe concreta di nome "ContenitoreDatiLC" erede di "ContenitoreDatiAstratto" che utilizza una lista concatenata a puntatori espliciti.
Allora ; io ho fatto in questo modo :
codice:
public class ContenitoreDatiLC<E> extends ContenitoreDatiAstratto<E> {
class ListaConcatenata<E> implements Iterable<E>{
private class Nodo<T>{
T info;
Nodo<T> next;
Nodo(T info){
this.info=info;
}
}
private int size;
private Nodo<E> testa;
private Nodo<E> coda;
.....
.......
........
}
non potrei scrivere pure cosi ?
codice:
public class ListaConcatenata<E> extends ContenitoreDatiAstratto<E>
Cioè ; dato che ListaConcatenata deve implementare Iterable , potrebbe essere corretto scrivere come sopra , dato che ContenitoreDatiAstratto implementa un'interfaccia che estende Iterable?
Spero di essere stato chiaro.
Aiutatemi
Ciao