for-each循环
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (String i : sites) {
System.out.println(i);
}
}
}
Google
Runoob
Taobao
Weibo
在Java中,for (String i : sites) { ... }
是一个增强的 for
循环(也称为 "for-each" 循环),它用于遍历数组或实现了 Iterable
接口的集合(如 ArrayList
)中的所有元素。
在这个特定的例子中,String i
是循环变量,它会在每次迭代中自动被赋值为 sites
集合中的下一个元素。sites
是你要遍历的 ArrayList
对象。
这里是如何工作的:
- 循环开始,
i
被初始化为sites
集合中的第一个元素。 - 执行循环体中的代码(在这个例子中是
System.out.println(i);
)。 - 循环继续,
i
被自动更新为sites
集合中的下一个元素。 - 重复步骤2和3,直到
sites
集合中的所有元素都被处理过。
这种语法比传统的 for
循环更简洁,并且减少了出错的可能性,因为你不需要手动管理索引或迭代器的状态。不过,请注意,增强的 for
循环不提供对元素索引的直接访问,也不允许在循环过程中修改集合的结构(如添加或删除元素)。如果你需要这些功能,你可能需要使用传统的 for
循环或迭代器。
for循环
import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (int i = 0; i < sites.size(); i++) {
System.out.println(sites.get(i));
}
}
}
Google
Runoob
Taobao
Weibo
使用了传统的for
循环来遍历ArrayList<String>
对象sites
。这种循环方法允许你访问列表中的每个元素的索引,并可以使用该索引来获取相应的元素。
这里是代码各部分的解释:
-
import java.util.ArrayList;
- 导入ArrayList
类,以便在代码中使用它。 -
public class RunoobTest { ... }
- 定义一个公共类RunoobTest
。 -
public static void main(String[] args) { ... }
- 定义程序的入口点,即main
方法。main
方法是一个特殊的静态方法,当Java虚拟机(JVM)加载包含main
方法的类时,它会自动调用这个方法。String[] args
是命令行参数的数组 -
ArrayList<String> sites = new ArrayList<String>();
- 创建一个新的ArrayList
对象sites
,用于存储字符串(String
)对象。 -
sites.add("Google");
,sites.add("Runoob");
, 等 - 使用add
方法向sites
列表中添加字符串元素。 -
传统的
for
循环:for (int i = 0; i < sites.size(); i++) { ... }
int i = 0;
- 初始化一个整数变量i
作为索引,它从0开始。i < sites.size();
- 这是循环的条件。它检查i
是否小于sites
列表的大小(即列表中元素的数量)。i++
- 在每次循环迭代结束时,将i
的值增加1,以便在下次迭代中访问列表中的下一个元素。
-
System.out.println(sites.get(i));
- 在循环体内部,使用get
方法根据索引i
从sites
列表中获取字符串元素,并使用System.out.println
打印它。for(int i : myNumbers)
等价于:for(int i = 0; i < myNumbers.size(); i++){
int j = myNumbers.get(i);
}