Java从jdk1.5起进入了一个简单但却功能无比强大的增强版for循环,下面让我们直接看一下代码示例吧!
import java.util.ArrayList;
import java.util.Iterator;
import com.heima.bean.Student;
/*
* A:增强for概述:
简化数组和Collection集合的遍历
B:格式:
for(元素数据类型 变量 : 数组或者Collection集合) {
使用变量即可,该变量就是元素
}
C:好处:
简化遍历
注:增强版for循环底层其实依赖的是迭代器
*/
public class Demo1_Foreach {
public static void main(String[] args) {
//demo1(); //使用增强版for对数组或集合进行遍历
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
//1,普通for循环删除,索引要--
/*for(int i = 0; i < list.size(); i++) {
if("b".equals(list.get(i))) {
list.remove(i--); //通过索引删除元素
}
}*/
//2,迭代器删除
/*Iterator<String> it = list.iterator();
while(it.hasNext()) {
if("b".equals(it.next())) {
//list.remove("b"); //运行出错,不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常
it.remove(); //可以使用自身的remove方法
}
}*/
/*for(Iterator<String> it2 = list.iterator();it2.hasNext();) {
if("b".equals(it2.next())) {
//list.remove("b");
it2.remove();
}
}*/
//3,增强for循环,增强for循环不能删除,只能遍历
/*for (String string : list) {
if("b".equals(string)) {
list.remove("b"); //出错,java.util.ConcurrentModificationException
}
}*/
System.out.println(list);
}
private static void demo1() {
int[] arr = {11,22,33,44,55};
for (int i : arr) {
System.out.println(i);
}
ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
for (String str : list) {
System.out.println(str);
}
ArrayList<Student> list2 = new ArrayList<>();
list2.add(new Student("张三", 23));
list2.add(new Student("李四", 24));
list2.add(new Student("王五 ", 25));
for (Student student : list2) {
System.out.println(student);
}
}
}