Я получаю сообщение об ошибке, когда пытаюсь получить отдельные значения, чтобы найти дисперсию в процессе вычисления стандартного отклонения. Я не могу понять, использовать ли .get() или .getValue, и я потерян. Я уже вычислил среднее значение.ошибка стандартного отклонения arraylist
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 ArrayList является 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).
Если вы хотите увидеть больше кода, пожалуйста, просто спросить, я не хотел, чтобы положить что-нибудь ненужное, но я мог бы что-то пропустил.
Можете ли вы объяснить, как <, а не <= избегает исключения? – user2007843
@ user2007843 Потому что я предполагаю, что вхождения - это размер вашего ArrayList (скажем, 6). Если вы используете 'i <= ..', то в последней итерации 'i' будет иметь значение' 6'. Но 'ArrayList' является' индексированным на основе 'динамическим resizable' array', который начинается с '0' и заканчивается' size() - 1', который равен '5'. Поэтому, когда вы пытаетесь получить элемент в индексе '6th'' ArrayList', он выкинет «IndexOutOfBoundsException» –
в порядке, спасибо, спасибо – user2007843