ログ ファイルからユーザー アクション間の平均時間差を見つけようとしています。たとえば、ユーザー アクションua, login, login
と次のユーザー アクションのua, disclaimer ok
場合、2 つのアクション間の時間を減算し、その特定の順序が発生するたびに、それらの時間をすべて足し合わせて、そのパターンの発生回数で割ります。
これは私のハッシュマップです
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 などになります。
私のコードでは、ログ ファイルをループして開き、行がユーザー アクションかどうかを確認し、それらの 2 行を宣言sCurrentLine
しsNextLine
て分割し、ユーザー アクション部分を分離します。次に、アクションの時刻と日付を両方の行から分離し、単純な日付形式を使用して解析し、違いを見つけます。私の望む出力はua, login, login --> ua, disclaimer, ok AVERAGE = 38 seconds
です。コード全体を見たい場合は、質問してください。