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
}