Ho un array di stringhe, dove vi sono stringhe che si ripetono, dovrei contare solo quelle diverse. Cosa mi suggerite di utilizzare o quale procedura mi consigliate di adottare?
Ho un array di stringhe, dove vi sono stringhe che si ripetono, dovrei contare solo quelle diverse. Cosa mi suggerite di utilizzare o quale procedura mi consigliate di adottare?
Potresti accontentarti di fare 2 cicli, ma in questo caso l'algoritmo non risulterebbe performante.Originariamente inviato da Gogeta SSJ87
Ho un array di stringhe, dove vi sono stringhe che si ripetono, dovrei contare solo quelle diverse. Cosa mi suggerite di utilizzare o quale procedura mi consigliate di adottare?
Ho un dubbio sulla tua domanda sul fatto se vuoi contare solamente le stringhe diverse escludendo completamente quelle duplicate oppure se vuoi contare tutte le stringhe contando però quelle duplicate una sola volta.
Se quello che chiedi è la seconda ipotesi una soluzione un po' strana, ma è la prima che mi viene in mente per evitare il doppio ciclo for potrebbe essere:
L'inserimento delle stringhe all'interno di una HashMap evita di duplicare le chiavi in quanto esse sono univoche, per cui non è possibile inserire due volte la stessa chiave.codice:String[] str = ... HashMap<String, String> hm = new HashMap<String, String>(); for (String s : str) { hm.put(s, s); } System.out.println("Count is: " + hm.size());
"Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)
Mi suggerite di usare un'altra struttura? Io parto da un array per questo ho chiesto sull'array, altrimenti quale struttura suggerireste? Dove potrei immetterli?
Satifal ho letto dopo la tua risposta, cmq grazie perché poi mi è venuto in mente di usare un'altra struttura come l'hashmap, cmq mi serviva solo contare tutte le stringhe anche quelle duplicate ma una sola volta queste ultime.
Si, va bene. Se fai una ricerca nel forum non molto tempo fa proposi una soluzione con questa struttura per un problema simile (filtraggio delle duplicazioni in un file).Originariamente inviato da Gogeta SSJ87
mi è venuto in mente di usare un'altra struttura come l'hashmap
Però posso assicurarti che puoi trovare un algoritmo comunque performante, usando un'altra struttura.![]()