学习
for (Element element : elements) 是一种在Java中用于迭代集合(数组或类似的数据结构)的增强型for循环语法,也被称为"for-each"循环。它提供了一种更简洁、更可读的方式来遍历集合中的元素。
具体来说,这个语法有以下特点和用法:
语法结构:for (元素类型 元素变量 : 集合)。在括号中,你首先声明一个元素变量,然后使用冒号分隔它和要遍历的集合(如数组或列表)。
工作原理:for-each循环会自动迭代集合中的每个元素,将每个元素赋值给指定的元素变量,并执行循环体中的代码块,直到遍历完所有元素为止。
元素类型:声明的元素变量的类型必须与集合中元素的类型兼容。在遍历过程中,元素变量的类型将自动匹配集合中元素的类型。
集合类型:for-each循环适用于数组、集合类(如List、Set)、Map中的keySet()、values()等等。但它不支持直接遍历Map的键值对,因为键值对是成对的,需要分别迭代键和值。
不支持修改:for-each循环只支持遍历和读取集合中的元素,不支持对集合进行修改。如果需要在遍历过程中修改集合,应该使用传统的for循环或迭代器。
总结
总之,for-each循环是一种便捷的语法结构,用于遍历集合中的元素,可以提高代码的可读性和简洁性。它在很多情况下是处理集合元素的首选方式。
测试代码
import javax.print.attribute.HashPrintJobAttributeSet;
import java.util.ArrayList;
import java.util.HashMap;
public class ForEach1 {
private static String array1[] = {"hello", "world"};//1. 初始化Java字符串数组的两种方式,变量声明赋初值
private static int[] array2;
private static ArrayList<Integer> arrayList = new ArrayList<>();
private static HashMap<Integer, String> hashMap=new HashMap<>();
public static void main(String[] args) {
// array1 = new String[]{"hello", "world", "array", "1"}; //2. java字符串数组在赋值的时候使用new 大括号来配合完成赋值
// test1(array1);
// test2();
// array2 = new int[]{1, 2, 3, 4, 5};
// test2(array2);
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
// test3(arrayList);
hashMap.put(1, "hello");
hashMap.put(2, "world");
hashMap.put(3, "from");
hashMap.put(4, "wangguowei");
test4(hashMap);
}
private static void test1(String array[]) {
for (String s : array) {
System.out.println(s);
}
}
private static void test2() {
System.out.println("调用了无参数的test2方法");
}
private static void test2(int[] array) {
System.out.println("调用了有参数的test2方法");
for (int i : array) {
System.out.println(i);
}
}
private static void test3(ArrayList<Integer> arrayList) {
for (Integer integer : arrayList) {
System.out.println(integer);
}
}
private static void test4(HashMap<Integer, String> hashMap) {
for (Integer key : hashMap.keySet()) {
System.out.println("key: " + key + " value: " + hashMap.get(key));
}
}
}