Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Java] Individuare duplicati in un ArrayList

    Ciao a tutti,
    è da due giorni che mi sto scervellando ma non ne vengo a capo. Ho seguito tutte le possibili guide su intenet ma nulla. Vi spiego il mio problema:

    Ho un ArrayList di stringhe, da cui successivamente estraggo gli elementi e creo un file TXT. Mi sarebbe utile eliminare i duplicati dall'arrayList prima di creare il file TXT ma non ci riesco in alcun modo. Ho provando utilizzando HashSet che non può contenere duplicati ma nulla, non funziona neppure confrontanto un elemento dell'arrayList con tutti i successivi:

    codice:
    list.get(i).equals(list.get(j))
    è come se le stringhe non fossero uguali, ma il file txt che poi viene creato contiene stringhe perfettamente uguali:

    codice:
    Diego Will Be Like A Final Juventus 
    
    Diego Juventus Milan Will Be Like A Final 
    
    Report WantAway KlaasJan Huntelaar Talked Out Of Milan Exit 
    
    Diego Juventus Milan Will Be Like A Final 
    
    Report WantAway KlaasJan Huntelaar Talked Out Of Milan Exit 
    
    Diego Juventus Milan Will Be Like A Final
    Da che cosa può dipendere? Non so più da che parte girarmi

    Grazie mille in anticipo

    Nicolo'

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [Java] Individuare duplicati in un ArrayList

    Originariamente inviato da nicolo_conte
    Mi sarebbe utile eliminare i duplicati dall'arrayList prima di creare il file TXT ma non ci riesco in alcun modo. Ho provando utilizzando HashSet che non può contenere duplicati ma nulla, non funziona neppure confrontanto un elemento dell'arrayList con tutti i successivi
    Inizia magari a postare il codice completo che hai scritto per gestire la logica di ricerca/eliminazione dei duplicati.

    Comunque, se non ci sono questioni particolari (es. ordinamento o altro), una soluzione semplice è quella di usare un HashSet. Si itera sul ArrayList, si "butta" pedestremente ogni stringa nel HashSet (che non consente duplicati, se hashCode/equals sono appropriati come lo fa String), alla fine si può ottenere un array o creare un altro ArrayList con i dati nel HashSet. Ti garantisco che vengono fuori davvero poche righe di codice!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Questo è il codice del metodo:

    codice:
    private String checkDoubleTweet(String tw){
        	List flush1 = new ArrayList<String>();
        	String ret = "";
        	tock1 = "";
        	parser1 = new StringTokenizer(tw, "\n");
        	while(parser1.hasMoreTokens()) {
        		tock1 = parser1.nextToken();
        		flush1.add(tock1);
        	}  
        	//Da implementare la ricerca di doppioni
        	for (int i = 0; i < flush1.size(); i++)
        		ret = ret + flush1.get(i);
        	return ret;
        }
    tw è la stringa contentente tutte le righe che poi andranno memorizzate nel file txt. Ho gia provato tramite HashSet passandogli (flush1) ma nulla da fare. Sembra che cosideri le stringhe differenti, ma non me ne capacito.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da nicolo_conte
    codice:
    parser1 = new StringTokenizer(tw, "\n");
    Sicuro che tokenizzare con delimitatore solo line-feed sia appropriato per quello che hai e devi fare?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Si si è quello che mi serve, su ogni riga è presente una frase che devo estrarre e confrontare con le altre. Corretto come approccio?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.