標籤:說明 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迴圈)