Quote Originariamente inviata da Jamie04 Visualizza il messaggio
codice:
public Object estrai() {
        if (isEmpty()) {
            return null;
        }
        Object result=top.oggetto;
        top=top.prossimo;
        return result;
    }
Ma non devi "toccare" top! Altrimenti è ovvio che alteri la lista!

codice:
Nodo nodoCorrente = top;

while (nodoCorrente != null) {
    // usa 'user' di nodoCorrente
    nodoCorrente = nodoCorrente.utentePresentato;
}
Il while che ho scritto, scorre tutta la lista, senza alterarla. E qualunque cosa vuoi fare con 'user' la devi fare dentro il while.
Se vuoi invece fare un metodo che estrae il "prossimo" elemento, devi mantenere lo "stato" del nodo corrente da qualche parte. Preferibilmente non in SocialPlatform ma in un oggetto apposito che incapsula la logica di iterazione, oggetto che prende il nome di "iteratore" (la interfaccia java.util.Iterator serve proprio a questo).