我正在尝试从日志文件中查找用户操作之间的时间平均差异。因此,例如,对于用户操作ua, login, login
和下一个用户操作ua, disclaimer ok
,我想减去这两个操作之间的时间,并且每次出现特定顺序时,将这些时间加在一起并除以该模式的出现次数。
这是我的哈希图
Map<String, HashMap<String, NumberHolder>> uaCount =
new HashMap<String, HashMap<String, NumberHolder>>();
NumberHolder
定义为
private class NumberHolder
{
public int occurences;
public int sumtime_in_milliseconds;
}
sCurrentLine
并且sNextLine
是他们的名字所表明的。迭代时,sNextLine
变为 sCurrentLine 等等。
在我的代码中,我遍历日志文件,打开它们,检查一行是否是用户操作,声明sCurrentLine
并sNextLine
拆分这两行以隔离用户操作部分。然后我从两行中分离出动作的时间和日期,使用简单的日期格式并解析它们,然后我发现了不同之处。我想要的输出是ua, login, login --> ua, disclaimer, ok AVERAGE = 38 seconds
. 如果您想查看整个代码,请询问。