Java Treemap non incrementare correttamente

voti
2

Attualmente sto cercando di scrivere un programma di utilità di registrazione degli errori per un programma nel lavoro che consente di automatizzare le attività svolte da altri prodotti in più passaggi (E 'selenio, ma non credo che è rilevante).

Quando un passaggio non riesce per un particolare compito, voglio identificare il passo, e quante volte viene a mancare durante una determinata attività (molti passi sono generici e ripetuto come Invia un messaggio a X, Aggiornamento X Log, ecc)

Il problema che sto affrontando è che quando conta un errore, non è incrementato in modo corretto. Se un passaggio non riesce una volta, lo raccoglierà come un conteggio di 1. Se un passaggio non riesce due volte, il conteggio rimarrà in 1. Se fallisce 3 volte il conteggio viene quindi incrementare a due, se 4 volte sarà incrementato di 3, e così via.

Ciò significa che se un passaggio non riesce più di una volta il mio conteggio è sempre fuori per uno.
Il codice che sto utilizzando per questo particolare lavoro è:

int count = map.containsKey(word) ? map.get(word) : 0;
if(word.startsWith(api) && line.contains(date.toString())){
    if (!map.containsKey(word)) {
        map.put(word, 1);
    } else {
        map.put(word, count + 1);
    }
}

Tutti gli indicatori a tutti sarebbe molto apprezzato. Saluti, Reg.

È pubblicato 02/06/2015 alle 08:11
dall'utente
In altre lingue...                            


1 risposte

voti
1

Si dovrebbe provare a cambiare a

if (!map.containsKey(word)) {
        map.put(word, 1);
      } else {
        map.put(word, map.get(word) + 1);
      }

La variabile countvalore può essere superata durante l'esecuzione. Questo tipo di problemi sono adatte per il debug. Cercate di tenere traccia il valore di countpasso dopo passo, che vi aiuterà a inchiodare questo problema.

Risposto il 02/06/2015 a 08:16
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more