- 增强for循环:底层使用的是送代器,使用for循环的格式,简化了送代器的书写,foreach是JDK1.5之后出现的新特性
- foreach又称增强for,是for循环的一个特殊简化版。
- foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。
- foreach不支持在循环中添加删除操作,因为在使用foreach循环的时候数组(集合)就已经被锁定不能被修改,否则会报出java.util.ConcurrentModificationException异常。
foreach语句格式:
for(元素类型type 元素变量value : 遍历对象obj) {
引用x的java语句;
}
遍历数组:
public class ForEachTest01 {
public static void main(String[] args) {
int[] a = {12,25,23,25,88};
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
for (int data : a) {
//data代表的数组中的每一个元素,缺点是没有下标。
System.out.print(data+" ");
}
}
}
遍历集合:
public class ForEachTest02 {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("您好");
list.add("世界");
list.add("美好");
//遍历1
Iterator<String> it = list.iterator();
while (it.hasNext()){
String str = it.next();
System.out.print(str);
}
System.out.println();
//遍历2
for (int i = 0; i < list.size() ; i++) {
System.out.print(list.get(i));
}
System.out.println();
//遍历3
for (String s:list) {
System.out.print(s);
}
}
}