-
普通for循环
1 for(初始化; 布尔表达式; 更新变化条件){ 2 //循环执行的内容 3 }
//例子
1 for(int i=0; i<20;i++){ 2 System.out.println(i); 3 }
-
“初始化”一般是初始化一个变量,只执行一次,也可以是空语句
-
判断布尔表达式,如果为true,则执行循环内容,为false则终止循环
-
“更新变化条件”执行循环内容,更新循环控制变量
-
再次检测布尔表达式,如果为true,贼执行循环内容,为false则终止循环
-
-
增强for循环
-
增强的for循环是在传统的for循环中增加的强大的迭代功能的循环,是在jdk1.5之后提出来的
-
引入增强for循环的原因:在JDK5以前的版本中,遍历数组或集合中的元素,需要先获得数组的长度或集合的迭代器,比较麻烦。
JDK5中定义了一种新的语法----增强for循环,以简化此类操作。增强for循环只能用在数组或实现Iterable接口的集合上。
1 for(声明变量量类型:被遍历的集合(collection)或者数组){ 2 //循环内容 3 } 4 import java.util.ArrayList; 5 import java.util.List; 6 7 ... 8 9 // 增强for循环 10 int[] num = {1,2,3,4,5,6}; 11 for(int i: num){ 12 System.out.print(i); 13 } 14 15 17 18 //迭代增强for循环 19 public class ForTest01 { 20 21 public static void main(String[] args) { 22 List<String> list = new ArrayList<>(); 23 list.add("a"); 24 list.add("b"); 25 list.add("c"); 26 list.add("d"); 27 28 //增强for循环,优点是可以简化遍历 29 for(String s : list){ 30 System.out.println(s); 31 } 32 } 33 }
-
声明变量类型是局部变量量,该变量的类型必须和集合或者数组元素的类型一致
-
在JAVA中,遍历集合和数组一般有以下三种形式:
-
第一种是普通的for循环遍历、第二种是使用迭代器进行遍历,第三种我们一般称之为增强for循环(for each
-
1 for (int i = 0; i < list.size(); i++) { 2 System.out.println(list.get(i) ); 3 } 4 5 Iterator iterator = list.iterator(); 6 while (iterator.hasNext()) { 7 System.out.println(iterator.next()); 8 } 9 10 for (Integer i : list) { 11 System.out.println(i); 12 }
-
-
集合框架中的三种迭代方式删除数据 1.普通for循环,可以删除,注意让索引做自减运算 2.迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常 3.增强for循环不能删除
1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 5 // 集合框架中的三种迭代方式删除数据 6 7 public class ForTest02 { 8 9 public static void main(String[] args) { 10 List<String> list = new ArrayList<>(); 11 list.add("a"); 12 list.add("b"); 13 list.add("b"); 14 list.add("c"); 15 list.add("d"); 16 17 //1,普通for循环删除,索引做自减运算 18 for(int i = 0; i < list.size(); i++) { 19 if("b".equals(list.get(i))) { 20 list.remove(i); 21 i--; 22 } 23 } 24 25 //2,迭代器删除 26 for(ListIterator<String> iter = list.listIterator(); iter.hasNext();){ 27 if("b".equals(iter.next())) { 28 iter.remove(); 29 } 30 } 31 //3,增强for循环不能删除,ConcurrentModificationException 32 for (String string : list) { 33 if("b".equals(string)) { 34 list.remove("b"); 35 } 36 } 37 System.out.println(list); 38 }
39 }