Il testo dell'esercizio:
Codice di RevVectIterator<T> che implementa Iterator<T>.L'iteratore standard della classe Vector<T> scandisce gli elementi dalla posizione 0 fino alla posizione size() - 1.
Scrivere la classe RevVector<T> che estende Vector<T> e ridefinisce il solo metodo iterator(), restituiendo un oggetto della nuova classe RevVectIterator<T>.
Definire la classe RevVectIterator<T> che implementa Iterator<T>, e realizza un iteratore che scandisce gli elementi di un vettore in ordine inverso a quello standard.
Questo codice funziona, l'ho testato richiamando tale classe in modo diretto. Ora devo fare la classe RevVector<T>, quella che ridefinisce solo il metodo iterator() e restituisce un nuovo elemento di tipo RevVectIterator<T>.codice:import java.util.*; public class RevVectIterator<T> implements Iterator<T> { private Vector<T> v; private int curr; public RevVectIterator(Vector<T> v) { this.v = v; this.curr = this.v.size() - 1; } public boolean hasNext() { return(curr > 0); } public T next() throws NoSuchElementException { try { return (v.get(curr--)); } catch (ArrayIndexOutOfBoundsException e) { throw new NoSuchElementException(); } } public void remove() { v.remove(curr); } }
Come la faccio? Ho capito che dentro il metodo iterator() che devo ridefinire dovrò creare un nuovo elemento di tipo RevVectIterator<T> e restituirlo, il punto è che il costruttore di RevVectIterator prende un Vector come parametro, cosa gli passo come parametro? Qualcuno può aiutarmi?