我是java的新手,面对arraylist的问题,我不知道我的“for loop”有什么问题我无法退出它,导致错误结束
ArrayList<String> r2 = new ArrayList<String>();
for(int i=0; i<= idx.length; i++) {
ArrayList<String> r = db.Fetch(idx[i],exta);
if(r.size() != 0) {
for (String s : r) {
r2.add(s);
Log.d("test","ID "+idx[i]+ " :" + s);
}
}
}
当我运行它时,我会在Log.d上打印正确的值,但循环不会退出它 所以帮助
答案 0 :(得分:2)
for(int i=0; i<= idx.length; i++)
您的ArrayList索引从0
转到idx.lenght -1
。循环idx.lenght
索引将导致ArrayIndexOutBoundExeception
。
for(int i=0; i < idx.length; i++)
答案 1 :(得分:0)
ArrayList<String> r2 = new ArrayList<String>();
for(int i=0; i< idx.length; i++)
{
ArrayList<String> r = db.Fetch(idx[i],exta);
if(r.size() != 0) {
for (String s : r)
{
r2.add(s);
Log.d("test","ID "+idx[i]+ " :" + s);
}
}
}
现在应该可以了。你从0开始,所以当我将等于idx.length时,你在这个位置的数组不存在。