Salve a tutti, sto impazzendo su un problema che non riesco a risolvere!
Mi spiego:
Ho un Array fissato a 1000 elementi contenente degli oggetti (episodi di serial tv) prelevati da un file di testo.Sto creando un metodo che mi elimini gli episodi che compaiono più di una volta all'interno dei questo array, ma ovviamente non funziona, posto ciò che ho già fatto.
la ricerca del doppione avviene comparando alcuni parametri dell'episodio; nell'esempio ho messo solo il titolo (e.getTitle()) per semplicità.codice:public void squeeze() { Episode [] clean = new Episode[1000]; //array buffer in cui salvo gli episodi int clean_index = 0; //indice che mi indica in che posizione sto inserendo l'episodio //getCount ritorna la posizione dell'ultimo elemento contenuto nell'arrau principale della //classe popolato con il file di testo for(int i = 0; i < this.getCount(); i++) { Episode e = this.episodes[i]; //episodes è l'array principale da cui devo togliere i doppi boolean esiste = false; //riscorro l'array in cerca dei doppioni for(int j = 0; j < this.getCount() && !esiste; j++) { if(i != j) { if(e.getTitle().equals(this.episodes[j].getTitle())) { esiste = true; } } } //se non ho trovato nulla, l'aggiungo if(!esiste) clean[clean_index ++] = e; } //sostituisco l'array principale con quello appena creato senza doppioni this.episodes = clean; this.nepisodes = clean_index; //nuovo top dell'array }
Il problema di questo mio metodo è che mi elimina del tutto i doppioni, quando a me servirebbe tenerne ovviamente almeno uno nell'array, per esempio, dati due episodi:
Io dovrei eliminare il suo doppio dall'array lasciandone solo uno (il mio metodo li elimina tutti e due invece)codice:Lost|Exposé|3|2007|63|Drama Lost|exposé |3|2007|63|Drama
Ci sto impazzendo, cosa sbaglio?Qualcuno potrebbe aiutarmi?
Grazie mille in anticipo!

Rispondi quotando