使用for循环计算大小或List <string>?</string>

时间:2011-09-20 10:12:29

标签: java

我有一个for循环,我在其中测试列表的大小。

for(int i = 0; i< thumbLinks.size(); i++) {
                        Log.e("URL" + i, thumbLinks.get(i));




                 url0 = thumbLinks.get(i);
                 url1 = thumbLinks.get(i); 

                 //Fix index out of bounds exception
                 url2 = thumbLinks.get(i);



              }

当我每次添加时,你可以看到我要求我3次获得3个网址。因为我不确定我将拥有多少URL。我用i来增加。 我想要的正确输出是

    url0 = thumbLinks.get(i);// which is support to be equivalent to 1
    url1 = thunkLinks.get(i);//which is suppose to be equivalent to 2

依旧......

但是我的代码没有这样做......

每次为每个网址添加1个。 我怎样才能解决这个问题 ?

3 个答案:

答案 0 :(得分:8)

编辑:好的,所以听起来你真的只想处理最多三个网址。所以你需要这样的东西:

String url0 = thumbLinks.size() > 0 ? thumbLinks.get(0) : null;
String url1 = thumbLinks.size() > 1 ? thumbLinks.get(1) : null;
String url2 = thumbLinks.size() > 2 ? thumbLinks.get(2) : null;

// Use url0, url1 and url2 where any or all of them may be null

编辑:我假设你想要出于某种原因分三批处理这些网址。如果情况并非如此,则不清楚 试图做什么。

您的代码不明确 - 您在i的来电之间没有增加thumbLinks.get(i) - 但我怀疑您需要以下内容:

if (thumbLinks.size() % 3 != 0) {
   // What do you want to do if it's not a multiple of three?
   throw new IllegalArgumentException(...);
}
for (int i = 0; i < thumbLinks.size(); i += 3) {
    String url0 = thumbLinks.get(i);
    String url1 = thumbLinks.get(i + 1);
    String url2 = thumbLinks.get(i + 2);
    // Use url0, url1 and url2
}

或者:

int i;
for (i = 0; i < thumbLinks.size() - 2; i += 3) {
    String url0 = thumbLinks.get(i);
    String url1 = thumbLinks.get(i + 1);
    String url2 = thumbLinks.get(i + 2);
    // Use url0, url1 and url2
}
for (; i < thumbLinks.size(); i++) {
  // Deal with the trailing URLs here, one at a time...
}

答案 1 :(得分:2)

试试这个

String[] url=new String[thumbLinks.size()];
for(int i = 0; i< thumbLinks.size(); i++) 
{
Log.e("URL" + i, thumbLinks.get(i));
url[i]=thumbLinks.get(i);
}

答案 2 :(得分:0)

你的for循环中有一个动态变量,这是代码设计。您可以在第一部分中使用动态值,例如

 for(x = getsomedymicvalue(); x > 0; x--)
 { .. }

但是在第二部分中有一个是危险的,可能会导致抛出异常(如果它们在循环期间发生变化),应该尽可能避免。