java arraylist不在for循环中工作

时间:2014-02-24 14:13:27

标签: java android arraylist

我是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上打印正确的值,但循环不会退出它 所以帮助

2 个答案:

答案 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时,你在这个位置的数组不存在。