Проблема с циклом с большим объемом данных

305
03 мая 2017, 08:41

Добрый день. У меня есть массив int[] размер 60480, для удобства мне нужно раскидать данные по 7 "ячейкам", для этого я использую конструкцию ArrayList<ArrayList<Integer>> week_history (есть подозрение, что это не правильное решение с точки зрения производительности и т.д., но это не точно).

Собственно проблема: Я раскидываю данные по 7 спискам и помещаю их в один общий список. Далее после этого, я хочу проверить в логах содержимое моего массива, но там выводится некорректные данные(такое впечатление, что некоторые ячейки перезаписываются друг на друга). В чём моя ошибка? Есть подозрение, что алгоритм по распределению данных по спискам не успевает завершиться, а я уже начинаю выводить в лог?

Код:

        ArrayList<Integer> dayHistory = new ArrayList<>();
        ArrayList<ArrayList<Integer>> week_history = new ArrayList<>();
        for (int i = 0, j = 0; i < history_array.length; i++, j++){
            dayHistory.add(history_array[i]);
            if (j == 8639){
                j = 0;
             week_history.add(dayHistory);
                dayHistory.clear();
            }
            if (i == (history_array.length - 1)){
                Log.w("LOG_TAG", "Закончили цикл");
            }
        }
        Log.w("LOG_TAG", "Переходим на след цикл");
        for (int i = 0; i < week_history.get(1).size(); i++){
            Log.wtf("LOG_TAG", "Элемент [" + i + "] - " + week_history.get(1).get(i));
        }
Answer 1

Не?

int[][] weekHistory = new int[7][8640];
for(int i = 0; i < 7; i++){
    for(int j = 0; j < 8640; j++){
        weekHistory[i][j] = history_array[i * 8640 + j];
    }
}
READ ALSO
Как в CardView вручную добавить элементы?

Как в CardView вручную добавить элементы?

ЗдравствуйтеКак в CardView добавить больше 1 элемента?

318
может ли конструктор быть виртуальным?

может ли конструктор быть виртуальным?

это вопрос из теста, а я не особо понимаю что значит виртуальный конструктор поэтому прошу помощи

362
Поддерживается ли Terracotta Server?

Поддерживается ли Terracotta Server?

Всем привет! Пытаюсь настроить персистентный кэш на кластерном сервере TerracotaПока пытался запустить кластер, наткнулся на информацию, о том,...

319
Не могу определится с выбором паттерна

Не могу определится с выбором паттерна

Создать суперкласс Грузоперевозчик и подклассы Самолет, Поезд, Автомобиль, Велосипед, КорабльЗадать правила выбора транспорта в зависимости...

338