Domanda

Ho un costume, generico, singolarmente LinkedList che io stesso costruito. Posso aggiungere, rimuovere, ecc a elenco bene. Mi piacerebbe implementare la ListIterator Java per la mia classe. Come potrei fare per iniziare questo? Quali sono i metodi ho bisogno di aggiungere alla mia classe? Tutto quello che posso trovare sul web è esempi di utilizzo del ListIterator sul default Java LinkedList che non è buono per me. Grazie!

È stato utile?

Soluzione

È possibile creare una seconda classe (di solito una classe annidata della vostra lista collegata) che implementa tutte le funzioni dell'interfaccia ListIterator. Si noti che alcune funzioni (come add e remove) sono opzionali-si può semplicemente gettare un UnsupportedOperationException. Le vostre esigenze lista di classe legati al implementare i metodi listIterator() e listIterator(int) per restituire un'istanza della seconda classe.

Altri suggerimenti

Si dovrebbe attuare il Iterator o ListIterator interfaccia.

Cerca gli metodi che ListIterator ha. Sarà necessario assicurarsi che la vostra versione di esso ha gli stessi metodi.

Se è possibile, cercare un Interface che usi ListIterator, e implementare tale interfaccia.

Per le prestazioni, è possibile implementare ListIterator e mantenere una versione "indietro" della vostra lista, come si iterare attraverso di essa. Ciò emulare una lista doppiamente collegata, ma solo per l'iteratore.

Tuttavia, è probabilmente più sicuro per implementare solo la tua lista concatenata come un elenco sotto doppiamente-linked.

Se si tratta di una lista concatenata semplice, attuazione ListIterator sarà difficile (se non impossibile), come ha bisogno di navigare in entrambe le direzioni, che è possibile implementare solo riavviando dalla testa più e più volte.

In entrambi rendere la vostra lista doppio legato, o si dovrà gettare UnsupportedOperationException su un sacco di metodi. (O vivere con O prestazioni (n) nella metà dei metodi)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top