Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Dubbi arrayList

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2018
    Messaggi
    4

    Dubbi arrayList

    Salve a tutti sono un pò di giorni che cerco la soluzione per un problema con un arrayList. Dopo aver creato l'arrayList il mio esercizio chiede di verificare la presenza di duplicati e ritornare il valore della verifica. come faccio a controllare se all'interno dell'arrayList ci sono duplicati? attualmente il codice è stato cancellato per attacco di rabbia se serve per darmi una soluzione migliore lo riscrivo.Aspetto risposte , ringrazio in anticipo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da M4646 Visualizza il messaggio
    come faccio a controllare se all'interno dell'arrayList ci sono duplicati?
    Se ti è stato richiesto di usare solo cicli, sebbene sia inefficiente si fa con 2 cicli annidati: per ciascun elemento lo devi cercare nel resto della lista.
    Se puoi usare altro, es. collezioni, puoi sfruttare un HashSet: per ciascun elemento, lo cerchi prima nel HashSet, se c'è hai un duplicato, altrimenti lo inserisci nel set e vai avanti così.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2018
    Messaggi
    4
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Se ti è stato richiesto di usare solo cicli, sebbene sia inefficiente si fa con 2 cicli annidati: per ciascun elemento lo devi cercare nel resto della lista.
    Se puoi usare altro, es. collezioni, puoi sfruttare un HashSet: per ciascun elemento, lo cerchi prima nel HashSet, se c'è hai un duplicato, altrimenti lo inserisci nel set e vai avanti così.
    se ricordo bene utilizzando HashSet posso verificare la presenza di dupplicati attraverso il metodo add vero? il quale ritorna false se aggiungo un duplicato

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da M4646 Visualizza il messaggio
    se ricordo bene utilizzando HashSet posso verificare la presenza di dupplicati attraverso il metodo add vero?
    Sì, esatto. O in alternativa, più esplicativo, usando anche il contains.

    Quote Originariamente inviata da M4646 Visualizza il messaggio
    il quale ritorna false se aggiungo un duplicato
    true se l'ha aggiunto (perché non c'era).
    false se non l'ha aggiunto (perché c'era già).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    codice:
    ArrayList<Integer> elements = new ArrayList<>();elements.add(1);
    elements.add(1);
    elements.add(2);
    HashSet<Integer> set = new HashSet<>();
    for(Integer val: elements) {
        set.add(val);
    }
    System.out.printf("Ci sono %d elementi diffenti, e %d duplicati%n", set.size(), elements.size()-set.size());
    La memoria costa meno dei cicli macchina. Questo ha complessità O(n) che su milioni di elementi fa la differenza

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da codicenativo Visualizza il messaggio
    La memoria costa meno dei cicli macchina. Questo ha complessità O(n) che su milioni di elementi fa la differenza
    Se un obiettivo fosse quello di fermarsi al primo duplicato trovato (senza andare oltre) ... chiaramente il discorso del elements.size()-set.size() viene meno.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #7
    si
    non avevo letto tutto il messaggio che altrimenti mi si scuoceva la pasta

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2018
    Messaggi
    4
    ok grazie a tutti per le risposte

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 © 2024 vBulletin Solutions, Inc. All rights reserved.