Java 下面的循环做什么?
我在一个网站上看到了下面的代码,但不知道它做了什么,当我使用它时,它显示了一个错误Java 下面的循环做什么?,java,Java,我在一个网站上看到了下面的代码,但不知道它做了什么,当我使用它时,它显示了一个错误 for(String next: var) 每个循环的java。其中var是一个实现iterable 见: 它在Java中为每个循环调用 要使其工作,var应为String[]或Collection类型,本质上是Iterable 相当于 for(int i=0; i < var.length; i++) { String next = var[i]; } 如果var是Collection它将迭
for(String next: var)
每个循环的java
。其中var是一个实现iterable
见:
它在Java中为每个循环调用
要使其工作,var
应为String[]
或Collection
类型,本质上是Iterable
相当于
for(int i=0; i < var.length; i++) {
String next = var[i];
}
如果var
是Collection
它将迭代循环,直到下一个变量有值为止。
您可以使用next变量访问该值对于初学者来说是一个非常有趣的问题,这是一个类似于for循环的foreach循环,它将为next分配var的每个值,该值是字符串类型的任何数组
有关更多信息,请参阅此
这就像在写:
for (Iterator<String> itr = var.iterator(); itr.hasNext();)
{
String str = itr.next();
...
}
for(迭代器itr=var.Iterator();itr.hasNext();)
{
字符串str=itr.next();
...
}
有关详细信息,请参见。var
必须是字符串对象列表
(对象s:List){}
的是每个循环的或每个循环的增强
这样迭代很容易,而不是使用
List<String> var=new ArrayList<String>();
for(int i=0;i<var.length();i++)
{
String s=var.get(i); //var is a list of String
System.out.println(s);
}
因此,为了简化操作,Java允许每个循环遍历每个循环的列表。是否只允许这一行代码?其余的呢。你说它“显示错误”:错误是什么?我知道答案。。。但你的问题非常模糊:“当我使用它时,它显示了一个错误”你甚至不说你如何使用它,这真的值得成为一个问题,所以?可能重复,或者它不必是一个列表。它可以是任何集合或数组。@NeplatnyUdaj它甚至不必是集合或数组。唯一的要求是引用实现某种类型的Iterable
。它在数组上也能工作是一个额外的好处,因为数组并没有实现它。谢谢大家。我的困惑。编辑过的。Naah。你把变量名搞混了。@aioobe谢谢,修复:)+1是第一个解释它如何工作的答案。我不会说这是写这个,因为你的答案允许使用迭代器对象的remove()
方法。你不能用for-each循环做这样的事情,它允许。但它不使用remove()
。把它想象成一个黑匣子:)这就是我给你的var
必须实现Iterable
或字符串数组。@aioobe…正确。。。oracle正在lambda项目中将其作为一个收尾。。。
List<String> var=new ArrayList<String>();
for(int i=0;i<var.length();i++)
{
String s=var.get(i); //var is a list of String
System.out.println(s);
}
for(String s:var)
{
System.out.println(s); //much easy
}