我有一个for循环,但不确定如何运行。我熟悉:
for(int i = 0; i <= 9; i++)
{
/* implementation */
}
我对以下形式的for循环感到困惑:
String[] myString = new String[] {"one", "two", "three", "some other stuff"};
String str1 = "", str2 = "";
for (String s : myString)
{
/* implementation */
}
这些类型的for
循环如何工作?它们与常规for
循环有何不同?
第一个是原始的for循环。您初始化变量,设置终止条件,并提供状态递增/递减计数器(有例外,但这是经典的)
为了那个原因,
for (int i=0;i<myString.length;i++) {
System.out.println(myString[i]);
}
是正确的。
对于Java 5,提出了一种替代方法。任何实现可迭代的事物都可以得到支持。这在Collections中特别好。例如,您可以像这样迭代列表
List<String> list = ....load up with stuff
for (String string : list) {
System.out.println(string);
}
代替
for (int i=0; i<list.size();i++) {
System.out.println(list.get(i));
}
因此,这实际上只是一种替代表示法。任何实现Iterable的项(即可以返回迭代器)都可以用这种方式编写。
幕后发生的事情是这样的:(效率更高,但我正在明确地编写它)
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String string=it.next();
System.out.println(string);
}
最后,它只是语法糖,但相当方便。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句