增强for循环(forearch)
生活随笔
收集整理的這篇文章主要介紹了
增强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)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2020年深圳高考免费的士怎么预约
- 下一篇: 兵马俑官网 华清宫景区 骊山风景区 官网