黑马程序员--高级for循环

--------- android培训java培训期待与您交流 ---------

高级for循环

1,格式:
for(数据类型 变量名 : 被遍历的集合(Collection)或者数组)
{
 
}

假如 al 是一集合

for(String s : al)
  {
   System.out.println(s);
  }

高级for循环只能对集合进行遍历,获取集合元素。但是不能对集合进行操作。

但是使用迭代器除了遍历,还可以进行remove集合中元素的动作。
如果是用ListIterator,还可以在遍历过程中对集合进行增删改查的动作。

2,传统for和高级for有什么区别呢?

高级for有一个局限性。必须有被遍历的目标。

建议在遍历数组的时候,还是希望是用传统for。因为传统for可以定义脚标。

 1 import java.util.*;
 2 
 3 class ForEachDemo 
 4 {
 5     public static void main(String[] args) 
 6     {
 7         
 8         ArrayList<String> al = new ArrayList<String>();
 9 
10         al.add("abc1");
11         al.add("abc2");
12         al.add("abc3");
13 
14         for(String s : al)
15         {
16             //s = "kk";
17             System.out.println(s);
18         }
19 
20         System.out.println(al);
21         /*
22         Iterator<String> it = al.iterator();
23 
24         while(it.hasNext())
25         {
26             System.out.println(it.next());
27         }
28         */
29 
30         int[] arr = {3,5,1};
31                               //传统for集合,可以定义脚标,某些时候操作元素更方便
32         for(int x=0; x<arr.length; x++)
33         {
34             System.out.println(arr[x]);
35                                                 arr[x]=arr[x]+x;//可以操作元素
36         }
37                                //只能获取集合中的元素
38         for(int i : arr)
39         {
40             System.out.println("i:"+i);
41         }
42 
43 
44         HashMap<Integer,String> hm = new HashMap<Integer,String>();
45 
46         hm.put(1,"a");
47         hm.put(2,"b");
48         hm.put(3,"c");
49 
50         Set<Integer> keySet = hm.keySet();
51         for(Integer i : keySet)
52         {
53             System.out.println(i+"::"+hm.get(i));
54         }
55 
56 //        Set<Map.Entry<Integer,String>> entrySet = hm.entrySet();
57 //        for(Map.Entry<Integer,String> me : entrySet)
58 
59         for(Map.Entry<Integer,String> me : hm.entrySet())
60         {
61             System.out.println(me.getKey()+"------"+me.getValue());
62         }
63 
64     }
65 }

 

 

--------- android培训java培训期待与您交流 ----------

                             详细请查看:http://edu.csdn.net/heima/

posted on 2012-08-06 17:08  doublewinwin  阅读(365)  评论(0编辑  收藏  举报