Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Java - Interazione e rimozione tra elementi in una LinkedList (ListIterator)
Forum - Java - Interazione e rimozione tra elementi in una LinkedList (ListIterator)

Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Mi sono imbattuto in un problema particolare:
  Far interagire tutte le combinazioni (e non permutazioni) in una LinkedList e rimuovere alcuni elementi.

A grandi linee:


  L'interfaccia Oggetto:

Codice sorgente - presumibilmente Java

  1. interface Oggetto {
  2.   boolean interagisci(Oggetto other);
  3. }




  La classe GestoreO:

Codice sorgente - presumibilmente Java

  1. class GestoreO {
  2.   LinkedList<Oggetto> lista;
  3.   void interagisci() {
  4.     for(ListIterator<Oggetto> iA = lista.listIterator(); iA.hasNext(); ) {
  5.       Oggetto A = iA.next();
  6.       for(ListIterator<Oggetto> iB = lista.listIterator(iA.nextIndex()); iB.hasNext(); ) {
  7.         if(A.interagisci(iB.next())) {
  8.           /* Rimuovi A e B da "lista" modificando di conseguenza gli iteratori */
  9.           break;
  10.         }
  11.       }
  12.     }
  13.   }
  14. }



Il problema principale è la rimozione di A e B, possibilmente alterando gli iteratori in modo da non eseguire più il controllo per B.
Un altro problema è nextIndex(), in quanto avevo pensato per questioni di velocità di usare una LinkedList, ma questo viene limitato dall'accesso per indice effettuato dalla creazione del secondo iteratore (dovendo ripercorrere l'intera lista fino all'elemento successivo).

Grazie in anticipo per l'aiuto :k:.

Spero che la domanda sia comprensibile :)

Ultima modifica effettuata da il 09/06/2013 alle 23:49
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 882
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 13:37
Lunedì, 10/06/2013

Per velocizzare devi prima ordinare la lista, in fase di iterazione modificare gli index dovrebbe generare un
eccezzione


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 15:33
Lunedì, 10/06/2013
In che senso ordinare la lista?
Ho una lista di oggetti non comparabili, come faccio a ordinarli?

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 882
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 16:26
Lunedì, 10/06/2013

Se non sono comparabili allora non la riordini :(


If ok Then GOTO Avanza else GOTO Inizia

PM Quote