Java Treemap没有正确递增

时间:2015-06-02 09:11:35

标签: java

我目前正在尝试为工作中的程序编写错误日志记录实用程序,以便在多个步骤中自动执行其他产品执行的任务(这是Selenium,但我认为这不相关)。

当某个特定任务的步骤失败时,我想确定该步骤,以及它在整个特定任务中失败的次数(许多步骤是通用的并且重复,例如“发送消息到X”,“更新X日志”等)

我面临的问题是,当它计算错误时,它没有正确递增。如果一个步骤失败一次,它将把它作为1的计数。如果一个步骤失败两次,则计数将保持为1.如果失败3次,则计数将增加到2,如果4次将增加到3,等等。

这意味着如果一个步骤失败不止一次,我的计数总是一个一个 我用于这项工作的代码是:

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);
    }
}

任何指针都会非常感激。 问候, 注册

1 个答案:

答案 0 :(得分:1)

您应该尝试将其更改为

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

变量count值在执行期间可能已过时。这类问题最适合调试。尝试逐步跟踪count的值,这将有助于您解决此问题。