Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di hdtogo
    Registrato dal
    May 2006
    Messaggi
    51

    [java]Eliminare duplicati da un array

    Qualcuno di voi potrebbe indicarmi un metodo per eliminare eventuali duplicati da un array...
    grazie mille
    La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perchè. In questo caso abbiamo messo insieme la teoria e la pratica: non c'è niente che funziona...e nessuno sa il perchè!!

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

    Re: [java]Eliminare duplicati da un array

    Originariamente inviato da hdtogo
    Qualcuno di voi potrebbe indicarmi un metodo per eliminare eventuali duplicati da un array...
    grazie mille
    Intanto array di che tipo?? Poi cosa ne devi fare degli elementi duplicati? Devi creare un nuovo array (con meno elementi, si intende) o mettere gli elementi duplicati ad un certo valore?

    Comunque non è difficile: scansioni tutto l'array elemento per elemento. Puoi usare un HashSet per tenere traccia degli elementi già trovati.
    Per ogni elemento dell'array vai a vedere se c'è nel HashSet, se c'è, allora hai trovato un duplicato, se non c'è, lo inserisci nel HashSet.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    bè se proprio sei costretto ad usare un array (altrimenti perche nn usare un insieme), dipende un pò da che devi confrontare, 2 elementi int si confrontano in un attimo, mentre se devi operare su oggetti è conveniente implementare un metodo che faccia il confronto (es compareTo(), eguals()...) e in caso fargli estendere l'interfaccia comparable

  4. #4
    Utente di HTML.it L'avatar di hdtogo
    Registrato dal
    May 2006
    Messaggi
    51
    scusate...vi faccio un esempio:
    codice:
    String string="Nome1;Nome2;Nome3;Nome2";
    String[] stringArr=string.split(";");
    Ecco, in questo caso dovrei eliminare dal stringArr l'elemento Nome2
    La teoria è quando si sa tutto e niente funziona. La pratica è quando tutto funziona e nessuno sa il perchè. In questo caso abbiamo messo insieme la teoria e la pratica: non c'è niente che funziona...e nessuno sa il perchè!!

  5. #5
    allora usa il metodo boolean equals (String x) della classe string

  6. #6
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    codice:
    String string="Nome1;Nome2;Nome3;Nome2";
    String[] stringArr=string.split(";");
    Set<String> set = new HashSet<String>();
    for(String s : stringArr) {
    	set.add(s);
    }
    dentro "set" hai tutti gli elementi. Siccome si tratta di un Set, non puo' contenere elementi duplicati. Nota solo che l'ordine in cui gli elementi compaiono nel set sara'
    1) Nome1; 2) Nome3; 3) Nome2
    perche' l'ultimo "Nome2" che inserisci "fa sparire" il primo.
    Se ti serve che gli elementi siano ordinati secondo qualche criterio puoi usare un TreeSet anziche' un HashSet.

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.