无法解决的ArrayIndexOutOfBoundsException

时间:2016-04-07 13:55:07

标签: android-studio runtime-error indexoutofboundsexception

虽然使用for循环执行一段简单的代码我遇到了这个无法解决的错误,因为索引没有被编程为超过titles数组的最大索引(5)但是我得到错误声称我是无论我是否将for(i)语句更改为任何其他数字的常量max(1,2,3等),请求第4行的索引5

for (int i = 0; i < titles.length - 1; i++) {
            boolean doesContain = false;
            for (int j = 0; j < articles.size() - 1; i++) {
                if (articles.get(j).title == titles[i]) {
                    doesContain = true;
                }
            }

            if (!doesContain) {
                class_article newArticle = new class_article();
                newArticle.title = titles[i];
                newArticle.body = bodies[i];
                newArticle.category = categories[i];
                newArticle.date = new Date(Integer.valueOf(dateDays[i]), Integer.valueOf(dateMonths[i]), Integer.valueOf(dateYears[i]));
                newArticle.read = reads[i] == 1;
                newArticle.done = dones[i] == 1;

                articles.add(newArticle);
            }
        }

对此愤怒问题的任何帮助都将不胜感激。

[编辑]有一次我尝试将i的最大索引设置为1,并且它加载了应用程序,其中包含2个正在加载的项目,除非它们是同一篇文章,而不是第1条和第2条,但是当更改为不同的文章时片段,然后再回来它恢复了它奇怪的,无法解释的错误。

1 个答案:

答案 0 :(得分:1)

for (int j = 0; j < articles.size() - 1; i++) {
                if (articles.get(j).title == titles[i]) {
                    doesContain = true;
                }
            }

这段代码是一个无限循环。你在i++部分写错了,这应该是j++(在内部for循环中)