如何使用循环执行ArrayList程序,该循环一次呈现列表的每个索引?

时间:2011-11-21 17:33:24

标签: java arraylist

我如何执行一个程序,只要数组/列表[idk哪个使用但我已被告知使用ArrayList我不需要预定义大小所以我会使用它]它将保持循环并一次观察或呈现一个值?

我尝试过使用while循环,但基本上我得到的都是错误,要求提供数组或说不兼容的类型或类似的东西。

while (myList!=0) //Can I actually do this? Because I didn't define a data type for my list.

if myList(0).equals ("A") //problem here is that I need to go through every index of the list. I've tried to use a counter like if myList(counter).equals ("A") but it says its incompatible types?
{
//print something.
} else if myList(0).equals ("B")
{
//print something
}

我知道这个问题有点令人困惑,但代码[即使它充满了错误]正是我想要做的。我只是不知道如何应用它。任何帮助,答案,链接,文章,教程都将受到重视。

4 个答案:

答案 0 :(得分:4)

看起来你正在用C指针思考它。 List始终指向List,从不指向Node或类似的东西。所以你会做这样的事情:

for(String s : myList) {
    if("A".equals(s)) {

    } else if("B".equals(s)) {

    }
}

答案 1 :(得分:2)

如果你正在使用ArrayList或List接口的其他一些实现,你将不会使用括号或括号直接访问数据,这意味着像myList [0]这样的东西是没有意义的。相反,您要做的是使用get方法,然后将其与您需要的任何值进行比较。您可以使用.size()方法获取List的长度,因此您的代码看起来像这样

for(int i=0; i<myList.size(); i++)
{
  if(myList.get(i).equals("A"))
   {
     //print something
   }
  else if(myList.get(i).equals("B"))
   {
     //print something else
   }
  else
   {
      //print something still different
   }
 }

glowcoder给出的响应是一个更紧凑的语法,用于循环JavaL中的ArrayLists和其他列表,并产生更好的代码,但这就是你如何做到的语法糖。

答案 2 :(得分:0)

这个答案是否适合您的问题?

for (int i = 0; i < myList.length; i++) {
    if ("A".equals(myList[i])) {
        // print something.
    } else if ("B".equals(myList[i])) {
        // print something
    }
}

答案 3 :(得分:0)

这应该是有效的,并且与你到目前为止的尝试非常接近:

int counter = 0;
while(counter < myList.size()) {
  if (myList.get(counter).equals("A") )
  {
  //print something.
  } else if (myList.get(counter).equals("B"))
  {
  //print something
  }
  counter = counter + 1;
}

请注意,这不是循环列表的首选方法,请参阅glowcoder的更优雅的答案。