1. 程式人生 > >java基礎40 增強for循環(也叫foreach循環)

java基礎40 增強for循環(也叫foreach循環)

叠代器 pac 評論 數據 urn border https 抽象 oid

增強for循環是jdk1.5出現的新功能

1、增強for循環的作用

簡化了叠代器的書寫格式(註意:增強for循環底層還是使用了叠代器遍歷)

2、增強for循環的格式

for(數據類型  變量名:遍歷的目標){

}

3、增強for循環的適用範圍

如果實現了 Iterable 接口或者數組對象都可以使用增強for循環

 1 package com.dhb.pattern;
 2 
 3 import java.util.Iterator;
 4 
 5 /**
 6  * @author DSHORE / 2018-6-8
 7  *
 8  */
 9 class MyList implements Iterable<String>{
10 Object[] arr=new Object[10]; 11 int index=0;//當前指針 12 public void add(Object o){ 13 arr[index++]=o; 14 } 15 public Iterator<String> iterator() { 16 17 return new Iterator<String>() {//new Iterator<String>():匿名內部類 Iterator接口,抽象的不能直接new
18 int cursor=0;//指針 19 //hasNext()、next()、remove()都是實現new Iterator<String>()中的方法 20 public boolean hasNext() { 21 return cursor<index; 22 } 23 public String next() { 24 25 return (String)arr[cursor++];
26 } 27 public void remove() { 28 29 } 30 };//結束匿名內部類的符號“;” 31 } 32 } 33 public class Demo2 { 34 public static void main(String[] args) { 35 MyList list=new MyList(); 36 list.add("張三"); 37 list.add("李四"); 38 list.add("王五"); 39 list.add("趙六"); 40 for (String string : list) { 41 System.out.print(string+",");//返回結果:張三,李四,王五,趙六, 42 } 43 } 44 }

4、增強for循環需要註意的事項

1、增強for循環底層也是使用叠代器獲取的,只不過獲取叠代器是由jvm完成,不需要我們獲取叠代器,索引在使用增強for循環遍歷元素的過程中,不準使用集合對對象 對集合元素經行修改
2、叠代器遍歷元素和增強for循環的區別:使用叠代器遍歷元素時可以刪除集合元素,而增強for循環遍歷集合元素時,不能調用叠代器裏面的remove方法刪除元素
3、普通for循環與增強for循環的區別:普通for循環可以沒有變量目標,而增強for循環一定要有變量目標

5、實例

 1  package com.dhb.pattern;
 2  
 3  import java.util.HashSet;
 4  /**
 5   * @author DSHORE / 2018-6-8
 6   *
 7   */
 8  public class Demo3 {
 9      public static void main(String[] args) {
10         //集合
11          HashSet<String> set=new HashSet<String>();
12          set.add("狗剩");
13          set.add("鐵蛋");
14          set.add("哮天神犬");
15    
16          Iterator<String> it=set.iterator(); //使用叠代器遍歷set集合
17          while(it.hasNext()){
18              System.out.println(it.next());
19          }
20        
21          for(String s:set){//使用增強for循環遍歷
22              System.out.println(s);
23          }
24 
25         //數組
26          int[] arr={12,2,5,0};     
27          for (int i = 0; i < arr.length; i++) {//普通for循環遍歷
28              System.out.println(arr[i]);
29          }
30       
31          for (int i : arr) {//增強for循環遍歷
32              System.out.println(i);
33          }
34      }
35  }

原創作者:DSHORE

作者主頁:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9156896.html

歡迎轉載,轉載務必說明出處。(如果本文對您有幫助,可以點擊一下右下角的 推薦,或評論,謝謝!

java基礎40 增強for循環(也叫foreach循環)