黑马程序员--高级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 }