09/06/13 21:47
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:
La classe GestoreO:
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 .
Spero che la domanda sia comprensibile
Far interagire tutte le combinazioni (e non permutazioni) in una LinkedList e rimuovere alcuni elementi.
A grandi linee:
L'interfaccia Oggetto:
interface Oggetto { boolean interagisci(Oggetto other); }
La classe GestoreO:
class GestoreO { LinkedList<Oggetto> lista; void interagisci() { for(ListIterator<Oggetto> iA = lista.listIterator(); iA.hasNext(); ) { Oggetto A = iA.next(); for(ListIterator<Oggetto> iB = lista.listIterator(iA.nextIndex()); iB.hasNext(); ) { if(A.interagisci(iB.next())) { /* Rimuovi A e B da "lista" modificando di conseguenza gli iteratori */ break; } } } } }
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 .
Spero che la domanda sia comprensibile
Ultima modifica effettuata da 09/06/13 21:49