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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 综合教程 >内容正文

综合教程

增强for循环(forearch)

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

增強(qiáng)for循環(huán)是為了簡(jiǎn)化在遍歷數(shù)組需要先獲得數(shù)組的長(zhǎng)度或者在遍歷集合中的元素的時(shí)候需要使用迭代器的操作。

引入時(shí)間:JDK1.5

語(yǔ)法格式:

for(數(shù)據(jù)類(lèi)型 變量 :需要迭代的數(shù)組或者集合){

}

限制條件:
  增強(qiáng)for循環(huán)只能用在數(shù)組或?qū)崿F(xiàn)了Iterable接口的集合類(lèi)上。

作用:

  是為了讓你的代碼變得簡(jiǎn)捷、和容易維護(hù)。

代碼示例如下:

 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         //普通數(shù)據(jù)進(jìn)行遍歷
40         int[] num = {1,2,3};
41         for (int i : num) {
42             System.out.println("普通數(shù)組遍歷結(jié)果:"+i);
43         }
44         //單列集合進(jìn)行遍歷
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遍歷結(jié)果:"+name);
51         }
52         //map進(jìn)行遍歷
53         HashMap<String, String> map = new HashMap<String,String>();
54         map.put("110", "李四");
55         map.put("210", "王五");
56         map.put("310", "張三");
57         //因?yàn)镸ap沒(méi)有實(shí)現(xiàn)Iterable接口,所以要把Map轉(zhuǎn)化為set來(lái)進(jìn)行遍歷
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         //自定義集合使用增強(qiáng)for循環(huán)
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

需要注意的細(xì)節(jié):

  1. 增強(qiáng)for循環(huán)底層也是使用了迭代器獲取的,只不過(guò)獲取迭代器由jvm完成,不需要我們獲取迭代器而已,所以在使用增強(qiáng)for循環(huán)變量元素的過(guò)程中不準(zhǔn)使用集合對(duì)象對(duì)集合的元素個(gè)數(shù)進(jìn)行修改。
2. 迭代器遍歷元素與增強(qiáng)for循環(huán)變量元素的區(qū)別:使用迭代器遍歷集合的元素時(shí)可以刪除集合的元素,而增強(qiáng)for循環(huán)變量集合的元素時(shí),不能調(diào)用迭代器的remove方法刪除元素。
3. 普通for循環(huán)與增強(qiáng)for循環(huán)的區(qū)別:普通for循環(huán)可以沒(méi)有變量的目標(biāo),而增強(qiáng)for循環(huán)一定要有變量的目標(biāo)。

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。