Member 13167365 Ответов: 1

Многомерный arraylist не работает


У меня есть некоторые данные, которые я хочу получить в формате списка многомерных массивов. Я получаю эти данные со своего сайта с помощью библиотеки JSOUP. Я проверил результат с помощью String Builder, чтобы убедиться, что данные действительно поступают.

ArrayList<string> attendancetd;
ArrayList<ArrayList<string>> attendancerow;
attendancetd = new ArrayList<string>();
attendancerow = new ArrayList<ArrayList<string>>();
for (Element attendanceTablerow : attedanceTableRows ){
    Elements tds = attendanceTablerow.select("td");
    for (Element td : tds){
        stringBuffer.append(td.text()+"*");
        attendancetd.add(td.text());
    }
    attendancerow.add(new ArrayList<string>(attendancetd));
    //attendancerow.add(attendancetd);
    attendancetd.clear();
    stringBuffer.append("\n");
}
//System.out.println(String.valueOf(stringBuffer));
int index=0;
for(ArrayList<string> row : attendancerow){
    Log.w("aa","(Row"+index+") " + row.get(0) + " | "+row.get(1)+ " | "+row.get(2));
    index++;
}



Вот логкэт

Вызванные: Java для.яз.IndexOutOfBoundsException: недопустимый индекс 0, размер равен 0
(в строке Log. w)

Что я уже пробовал:

Я попытался следовать за Андроидом - Android-работа с многомерными строковыми массивами - переполнение стека[^] Работа с многомерными строковыми массивами

Я также проверяю свою ошибку logcat здесь

Richard MacCutchan

Ошибка предполагает, что вы никогда не добавляли никаких данных в свой массив. Пройдитесь по коду с помощью отладчика, чтобы точно увидеть, что происходит. Правильно ли это:
for (Element attendanceTablerow : attedanceTableRows ){?

1 Ответов

Рейтинг:
1

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.
Отладчик-Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.