標準偏差を計算する過程で、個々の値を取得して分散を見つけようとすると、エラーが発生します。.get() と .getValue のどちらを使用すればよいかわかりません。私はすでに平均を計算しました。
final ArrayList<Map.Entry<String,NumberHolder>> entries = new ArrayList<Map.Entry<String,NumberHolder>>(uaCount.entrySet());
for(Map.Entry<String,NumberHolder> entry : entries) //iterating over the sorted hashmap
{
double temp = 0;
double variance = 0;
for (int i = 0; i <= entry.getValue().occurrences ; i ++)
{
temp += ((entry.getValue(i).singleValues) - average)*((entry.getValue(i).singleValues) - average);
variance = temp/entry.getValue().occurrences;
}
double stdDev = Math.sqrt(variance);
これは NumberHolder クラスで、メイン関数に入力します。標準偏差には次の式を使用しています: http://www.mathsisfun.com/data/standard-deviation-formulas.html
私のコードに基づいて、オカレンスはNで、singleValues配列リストの値はXiです
public static class NumberHolder
{
public int occurrences = 0;
public int sumtime_in_milliseconds = 0;
public ArrayList<Long> singleValues = new ArrayList<Long>();
}
これは私が得るエラーです。:
The method getValue() in the type Map.Entry<String,series3.NumberHolder> is not applicable for the arguments (int).
さらにコードを表示する必要がある場合は、質問してください。不必要なものは何も入れたくありませんでしたが、何かを見落としている可能性があります。