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