Java 使用for循环计算大小或列表?

Java 使用for循环计算大小或列表?,java,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

我有一个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);



              }
等等

但是我的代码没有做到这一点

它只是每次向每个url添加1。 我怎样才能解决这个问题

编辑:好的,听起来你真的只想处理三个URL。所以你想要的是:

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
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
}
编辑:我假设出于某种原因,您希望分三批处理URL。如果不是这样的话,就不清楚你想做什么

您的代码不清楚-您没有在调用thumbLinks.geti之间增加i-但我怀疑您需要类似以下内容:

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
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
}
或:

试试这个

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);
}
在for循环中有一个动态变量,这是糟糕的代码设计。您可以在第一部分中有一个动态值,例如

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

但是在第二部分中有一个异常是危险的,如果它们在循环过程中发生变化,可能会导致抛出异常,并且应该尽可能避免。让我解释一下,您想要的是当i==1时取url1中的值,当i==2时取url2中的值,依此类推?url0、ur1和url2是相同的。我只会在大括号内的每个循环中递增,是否要从该列表中获取最后3个URL?我同意,在您粘贴的代码中,每次调用geti时,i的值总是相同的。这就是为什么你得到了相同的值。@Jokahero:我试图提供OP可能想要的代码,而不是他目前得到的坏代码。你的最后一个代码示例就是我想要做的。我希望每次url0、url1、url2查找每个get时,我都能在拇指链接列表中找到正确的URL。I.@coder_for_Life22:恐怕你仍然没有很好地传达你想要做的事情-你是否试图一次处理3个URL?如果它们的URL超过3个,那么我想省略第4个,以此类推。