日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

增强for循环(forearch)

發布時間:2023/12/13 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 增强for循环(forearch) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

增強for循環是為了簡化在遍歷數組需要先獲得數組的長度或者在遍歷集合中的元素的時候需要使用迭代器的操作。

引入時間:JDK1.5

語法格式:

for(數據類型 變量 :需要迭代的數組或者集合){

}

限制條件:
  增強for循環只能用在數組或實現了Iterable接口的集合類上。

作用:

  是為了讓你的代碼變得簡捷、和容易維護。

代碼示例如下:

 1 import java.util.HashMap;
 2 import java.util.HashSet;
 3 import java.util.Iterator;
 4 import java.util.Map;
 5 import java.util.Set;
 6 
 7 //自定義List
 8 class NickList implements Iterable<Object>{
 9     
10     int index = 0;
11     Object[] arr = new Object[10];
12     
13     public void add(Object obj) {
14         arr[index++] = obj;
15     }
16     
17     @Override
18     public Iterator<Object> iterator() {
19         return new Iterator<Object>() {
20             int cursor  = 0;
21 
22             @Override
23             public boolean hasNext() {
24                 return cursor<index;
25             }
26 
27             @Override
28             public Object next() {
29                 return (Object) arr[cursor++];
30             }
31         };
32     }
33     
34 }
35 
36 public class DomeForEarch {
37 
38     public static void main(String[] args) {
39         //普通數據進行遍歷
40         int[] num = {1,2,3};
41         for (int i : num) {
42             System.out.println("普通數組遍歷結果:"+i);
43         }
44         //單列集合進行遍歷
45         HashSet<String> set = new HashSet<String>();
46         set.add("張三");
47         set.add("李四");
48         set.add("王五");
49         for (String name : set) {
50             System.out.println("set遍歷結果:"+name);
51         }
52         //map進行遍歷
53         HashMap<String, String> map = new HashMap<String,String>();
54         map.put("110", "李四");
55         map.put("210", "王五");
56         map.put("310", "張三");
57         //因為Map沒有實現Iterable接口,所以要把Map轉化為set來進行遍歷
58         Set<Map.Entry<String,String>> entrys = map.entrySet();
59         for (Map.Entry<String,String> entry : entrys) {
60             System.out.println("key:"+entry.getKey()+"value"+entry.getValue());
61         }
62         
63         //自定義集合使用增強for循環
64         NickList nickList = new NickList();
65         nickList.add("張三");
66         nickList.add("李四");
67         nickList.add("王五");
68         for (Object item : nickList) {
69             System.out.println(item);
70         }
71     }
72 }

View Code

需要注意的細節:

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

總結

以上是生活随笔為你收集整理的增强for循环(forearch)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。