Переменная счетчика никогда не сбрасывается - PullRequest
0 голосов
/ 13 октября 2018

У меня есть функция для создания ArrayList средних значений для построения графика, он выглядит следующим образом:

public void setupAverageEntries(int everyNthTimeStamp){
    this.avgEntries = new ArrayList<GraphEntry>();

    for (int i = 0; i < data.getTimeStampData().size() - everyNthTimeStamp; i += everyNthTimeStamp) {

        int avgVolume = new Integer(0);
        int total = new Integer(0);

        for (int j = 0; j < i + everyNthTimeStamp; j ++) {
            total += data.getVolumeData().get(j);
        }

        avgVolume = total / everyNthTimeStamp; // get the average volume over a certain amount of time stamps

        System.out.println("TOTAL " + total);
        System.out.println("AVG " + avgVolume);

        Point p = new Point(i + everyNthTimeStamp / 2, avgVolume); // plot a point with the average volume and in the middle of the NthTimeStamp
        GraphEntry avgE = new GraphEntry(p, avgVolume, i + everyNthTimeStamp / 2);
        this.avgEntries.add(avgE);
    }
}

Я бы подумал, что инициализация 'total' в первом цикле в 0 будет означатьчто он будет сброшен после завершения второго цикла, используя его для вычисления 'avgVolume', но вывод, который он производит, показывает мне, что итоговое значение только увеличивается.Я подумал, что это может быть проблема со ссылками, но даже после объявления 'total' и 'avgVolume' new, total по-прежнему никогда не сбрасывается.

Пожалуйста, помогите!Это проблема, связанная с объемом?Надеюсь, я не просто слепая летучая мышь ...

1 Ответ

0 голосов
/ 13 октября 2018

Я думаю, что он сбрасывается правильно, но во внутреннем цикле вы всегда повторяете одни и те же данные, просто проходя дальше в каждом цикле внутреннего цикла, чем в предыдущем.Поэтому естественно, что сумма всегда больше, чем в предыдущей итерации.

Я не анализировал ваш код дальше, но я предполагаю, что внутренний цикл должен начинаться с i вместо 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...