java基礎40 增強for迴圈(也叫foreach迴圈)

來源:互聯網
上載者:User

標籤:說明   int   pack   move   rabl   asn   ++   tps   匿名   

增強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介面,抽象的不能直接new18             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迴圈)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.