-
普通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 }