【问题标题】:For loop in Java [duplicate]Java中的for循环[重复]
【发布时间】:2014-01-12 14:46:41
【问题描述】:
多年来,我一直在为最近的夫妇编程,但今天我看到了一个我在网上搜索但找不到完美答案的新东西。有一个代码说
for(String string : mCha) // line 1
{
// loop working
}
我想问一下第1行是什么意思?正如我所研究的那样,for 循环中应该有 3 个参数,如果我们不想给出,那么应该遵循以下方法
for(;;)
{
}
请解释一下,因为我对这种语法完全陌生,我在网上搜索但找不到任何有用的东西。
【问题讨论】:
标签:
java
for-loop
foreach
【解决方案1】:
for(String string : mCha) // line 1
{
// loop working
}
是 : 的简写:
for (Iterator<String> i = mCha.iterator(); i.hasNext(); ) {
String string = (String)i.next();
//loop working
}
(前提是mCha实现Iterable,数组处理方式不同,见the JLS about the enchanced for statement)
例子:
for(String string : mCha) // line 1
{
System.out.ptinln(string) // For each element of my collection, display it.
}
【解决方案2】:
我想问一下第1行是什么意思?
这是java中的for-each循环。相当于
Iterator<String> it = mCha.iterator();
while(it.hasNext()){
String string = it.next();
// loop working
}
for-each 循环是在 java 1.5 中引入的。详情请见The For-Each Loop。
【解决方案3】:
for(String string : mCha) // line 1
{
// loop working
}
这里的mCha 是一个集合,可以是array、list 或任何东西,上面的for 循环(这是for 循环的一个特例)正在从头到尾扫描每个string array 或 list
【解决方案4】:
它被称为增强的 for 循环。它是在 Java 5 中引入的。它的工作方式类似于使用索引的旧 for 循环。两者都可以用来迭代集合和数组。
旧的 for 循环:使用这种格式的 for 循环,您可以访问索引变量,也可以随意跳过索引。
for(int i=0;i<size;i++){
//code
}
增强的 for 循环:与旧的 for 循环相比,这种格式非常不灵活。仅当您需要遍历集合的每个元素并且您不需要知道集合中任何特定元素的索引时才使用此格式。
for(String string : mCha) // This means that "For each String element in the collection/array mCha"
{
//code
}
详细了解增强的 for 循环 here
【解决方案5】:
基本的 for 循环在 Java 5 中得到了扩展,使对数组和其他集合的迭代更加方便。这个较新的 for 语句称为增强的 for 或 for-each(因为它在其他编程语言中被称为 this)。我还听说它称为 for-in 循环。
解释每个循环的简单示例
class ForEachExample1{
public static void main(String args[]){
int arr[]={12,13,14,44};
for(int i:arr){
System.out.println(i);
}
}
}
另见The For-Each Loop
【解决方案6】:
This is known as for-eachloop introduced in java5.
for(String string : mCha) // line 1
{
// loop working
}
It is used to iterate with both collections and arrays same as normal for loop
Syntax:
for(data_type variable : array | collection){}
Example:
int[] array = {1,3,6};
int sum = 0;
for (int i : array) {
sum += i;
}
System.out.println("Total sum":+sum);
I hope it is clear
【解决方案7】:
看这个例子....
List v = new ArrayList();
v.add("aa");
v.add("bb");
v.add("cc");
for (Object str : v) {
System.out.println(str.toString());
}
它会给出输出
aa
bb
cc
for (Object str : v) 它在对象集合上旅行。