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

    Ricercare il numero di occorrenze di un elemento in un vettore

    Salve a tutti.
    Spiego subito il mio problema.
    Ho un Vector di stringhe che voglio scorrere per trovare il massimo numero di occorrenze di una stringa particolare. Mi spiego meglio in questo vettore vorrei trovare quella stringa che si ripete più volte.
    Mi sono scervellato un pò ma senza successo. Non riesco neppure a trovare un'idea su come iniziare, cioè se è possibile scorrere solo una volta tutto il vettore, confrontando le stringhe man mano che procedo, oppure se bisogna fare necessariamente due cicli...

    Grazie per l'aiuto.
    Ciao a tutti

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Basta un ciclo solo.

    Conosci le HashMap ?

    Forse è una idea un po' troppo... comoda

    Scorrendo l'array, per ogni stringa che trovi, verifichi se è nell'HashMap. Se non c'è la inserisci e segni come valore 1 (usi la stringa come key). Se invece c'è incrementi il valore di 1.
    Ovviamente puoi tener traccia della stringa trovata con il massimo numero di occorrenze ad ogni passo della scansione del vettore (suggerimento: basta un String e un int)

    Finita la scansione hai l'elenco di tutte le stringhe e delle relative occorrenze nella HashMap, più la stringa con il massimo numero di occorrenze.

    Ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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

    Re: Ricercare il numero di occorrenze di un elemento in un vettore

    Originariamente inviato da luigixiv
    Ho un Vector di stringhe che voglio scorrere per trovare il massimo numero di occorrenze di una stringa particolare. Mi spiego meglio in questo vettore vorrei trovare quella stringa che si ripete più volte.
    Mi sono scervellato un pò ma senza successo. Non riesco neppure a trovare un'idea su come iniziare, cioè se è possibile scorrere solo una volta tutto il vettore, confrontando le stringhe man mano che procedo, oppure se bisogna fare necessariamente due cicli...
    Se il vettore non è già ordinato (cosa che semplificherebbe di molto), ci sono sicuramente diverse soluzioni. Una soluzione non difficile, se vuoi scansionare il vettore solo 1 volta, è quella di usare una mappa (es. HashMap) in cui come chiavi hai le tue stringhe e come valori hai dei contatori (Integer). Ad ogni occorrenza incrementi il contatore o lo setti a 1 se non presente. Alla fine cerchi nella mappa la stringa con il contatore più alto.

    In alternativa, se il vettore lo puoi modificare, lo ordini e cerchi la sequenza di stringhe uguali più lunga.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.