我有一个for循环,我不知道它是如何工作的.我熟悉:
for(int i = 0; i <= 9; i++)
{
/* implementation */
}
Run Code Online (Sandbox Code Playgroud)
我对以下形式的for循环感到困惑:
String[] myString = new String[] {"one", "two", "three", "some other stuff"};
String str1 = "", str2 = "";
for (String s : myString)
{
/* implementation */
}
Run Code Online (Sandbox Code Playgroud)
这些类型的for循环如何工作?它们与常规for循环有什么不同?
MJB*_*MJB 35
第一个是原始for循环.初始化变量,设置终止条件,并提供状态递增/递减计数器(有例外,但这是经典)
为了那个原因,
for (int i=0;i<myString.length;i++) {
System.out.println(myString[i]);
}
Run Code Online (Sandbox Code Playgroud)
是正确的.
对于Java 5,提出了一种替代方案.可以支持任何实现iterable的东西.这在收藏中特别好看.例如,您可以像这样迭代列表
List<String> list = ....load up with stuff
for (String string : list) {
System.out.println(string);
}
Run Code Online (Sandbox Code Playgroud)
代替
for (int i=0; i<list.size();i++) {
System.out.println(list.get(i));
}
Run Code Online (Sandbox Code Playgroud)
所以它只是一个替代符号.任何实现Iterable的项(即可以返回迭代器)都可以这样编写.
幕后发生的事情是这样的事情:(更有效率,但我明确地写了它)
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String string=it.next();
System.out.println(string);
}
Run Code Online (Sandbox Code Playgroud)
最后它只是语法糖,但相当方便.
| 归档时间: |
|
| 查看次数: |
93178 次 |
| 最近记录: |