增强for循环(forearch)
增強(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)題。
- 上一篇: 2020年深圳高考免费的士怎么预约
- 下一篇: 兵马俑官网 华清宫景区 骊山风景区 官网