foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。
foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
foreach比for的好处和弊端
好处:相对于for来说方便了对容器的遍历
弊端:没有索引,不能操作元素中的元素
public class ForEachDemo {
public static void main(String[] args) {
funciton_2();
// testHashSet();
}
public static void funciton_2() {
ArrayList<Person> arr = new ArrayList<Person>();
arr.add(new Person("a", 18));
arr.add(new Person("b", 18));
for (Person p : arr) {
System.out.println(p);
}
}
public static void testHashSet() {
Collection<String> coll = new ArrayList<String>();
coll.add("abc1");
coll.add("add2");
coll.add("add3");
coll.add("add4");
coll.add("add5");
coll.add("add6");
for (String s : coll) {
System.out.println(s);
}
}
public static void function_1() {
String[] str = { "abc", "a2bb", "a2aa" };
for (String s : str) {
System.out.println(s.length());
System.out.println(s);
}
}
public static void function() {
int[] arr = { 2121, 5454, 545, 4, 54 };
for (int i : arr) {
System.out.println(i);
}
}
}
public class ForEach{
public static void main(String[] args){
for(char c:"helloworld".toCharArray())
System.out.print(c+" ");
}
上面的程序运行结果为:
h e l l o w o r l d