foreach
for (element_type element_value : 遍历对象obj){
}
例1
public class test {
public static void main(String args[]){
int arr1[] = {1,2,3,3,5};
System.out.println("逐个输出一维数组元素:");
for(int i:arr1){
System.out.println(i);
}
}
}
例2
public class test2{
public static void main(String args[]){
int [][] arr2 = {{1,2,3,4,5,6}, {7,8,9,10}};
System.out.println("逐个输出二维数组:");
for (int[] i : arr2){
for (int j : i)
System.out.printf("%-2d", j);
System.out.println();
}
}
}
foreach 局限性
for each 是for循环的增强版,简化了编程,提高了代码可读性和安全性(数组越界)。在遇到数组或者集合索引的情况下,foreach就不好用了。而且foreach一般结合泛型使用。
例1 数组
import java.util.Arrays;
public class test3{
public static void main(String [] args){
String[] cities = {"beijing", "shanghai"};
for (String city : cities){
city = "guangdong";
}
System.out.println("foreach"+Arrays.toString(cities));
//for
for (int i = 0; i < cities.length; i++){
cities[i] = "guangdong";
}
System.out.println("for"+Arrays.toString(cities));
}
}
}
例2 集合
import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;
public class test4{
public static void main(String args[]){
List<String> cities = new ArrayList<String>();
cities.add("beijing");
cities.add("shanghai");
//foreach
for(String city : cities){
city = "guangdong";
}
System.out.println(Arrays.toString(cities.toArray()));
//for
for(int i = 0; i < cities.size(); i++){
cities.set(i, "guangdong");
}
System.out.println(Arrays.toString(cities.toArray()));
}
}