Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Originariamente inviato da GHoldenBoy
    perchè mi restituisce 2 e non 3? perchè al secondo controllo positivo non aumenta il "volte"??
    Perchè invochi aggiungVolta solo se l'ha già trovato.

  2. #12
    alla costruzione della parola volta è inizializzato a 1 e pensavo di doverne aumentare il valore quando avviene un match positivo (volta sarà +1 se la chiave è già presente nel HashMap).

    Tu dici che dovrei fare un' aggiungVolte anche dopo che ho inserito per la prima volta la parola? così volte non andrebbe a 2 anche se effettivamente la parola appare una volta sola??



    p.s. grazie mille per l'aiuto che mi stai dando e per la disponibilità.. Questo dovrebbe essere un problema già più semplice ma non riesco a capire dove erro.

  3. #13
    Originariamente inviato da GHoldenBoy
    alla costruzione della parola volta è inizializzato a 1 e pensavo di doverne aumentare il valore quando avviene un match positivo (volta sarà +1 se la chiave è già presente nel HashMap).

    Tu dici che dovrei fare un' aggiungVolte anche dopo che ho inserito per la prima volta la parola? così volte non andrebbe a 2 anche se effettivamente la parola appare una volta sola??
    Ma tu fai il put di parol.numVolte() e non di volte.

  4. #14
    pensavo fosse giusto perchè il metodo è così definito nella classe parola
    codice:
    public int numVolte(){
    	return volte;
    }

  5. #15
    Originariamente inviato da GHoldenBoy
    pensavo fosse giusto perchè il metodo è così definito nella classe parola
    codice:
    public int numVolte(){
    	return volte;
    }
    No, non è giusto, perchè sono due variabili diverse. In questo caso volte è un campo di istanza della classe ParolaF, e in base agli output che ottieni, si può dire che è inizializzata a 0.
    Devi sapere che numVolte() si riferisce al campo di istanza, non ad una variabile che dichiari in un secondo momento al di fuori del suo ambiente.

  6. #16
    Ho cambiato un po' di cose e credo di ottenere i valori che cercavo!!

    Ho risolto tutto è gestitendo con un unica classe (e non più due) Indexer e gestendo la parte che mi dava dei problemi così:
    codice:
     if(controlloFile && scans.hasNext()){
            do{
            	//recupero la parola e elimino gli ultimi due caratteri specifici del file analizzato (\n)
            	riga= scans.nextLine();
            	parola= riga.substring(0, riga.length()-2);
            	int valoreVolte= 0;
            	if (tabellHash.containsKey(parola)) {
            		valoreVolte= tabellHash.get(parola);
            		valoreVolte= valoreVolte+1;
            		//System.out.println("trovata parola "+parola+" gia' "+valoreVolte+" volte");
            		tabellHash.put(parola, valoreVolte);
            		//System.out.println("Reinserita parola "+parola+" con valore: "+valoreVolte);
            	}
            	else {
            		i++;
            		tabellHash.put(parola, volta);
            		System.out.println("inserita parola numero "+i);
            		
            	}
            }while(scans.hasNextLine());     	   
    }
    dove volta dell'else è una costante int =1 (sicuro che al primo ingresso il dato sarà presente solo una volta.
    Per ora il controllo non mi sta dando errori, era così che mi dicevi di fare Vincenzo?
    Avete dubbi. pensate che l'algoritmo così studiato possa dare errori??





    p.s. comunque ringrazio VincenzoTheBest e unomichisiada per la mano

  7. #17
    Originariamente inviato da GHoldenBoy
    Per ora il controllo non mi sta dando errori, era così che mi dicevi di fare Vincenzo?
    Si, adesso in sostanza va bene, anche se puoi anche risparmiare l'uso di variabili come valore e valoreVolte. Poi non so l'indice i a cosa serva.

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