加強for循環:java
格式:for(變量數據類型 要遍歷的變量 :元素所在數組(集合)名稱)數組
也即 for(Type element: array或collection)spa
使用foreach遍歷集合:code
只能獲取集合中的元素,不能對集合進行操做。blog
而迭代器Iterator除了能夠遍歷,還能夠對集合中的元素遍歷時進行remove操做。element
若是使用ListIterator還能夠在遍歷過程當中進行增刪改查的動做。rem
//例子1:get
import java.util.*; class Foreach { public static<T> void sop(T t) { System.out.println(t); } public static void main(String[] args) { ArrayList<String> al = new ArrayList<String>(); al.add("abc"); al.add("bcd"); al.add("kef"); //一、傳統for循環遍歷(按角標獲取) for(int i=0;i<al.size();i++) { sop(al.get(i)); } sop("\n"); //二、for循環遍歷(迭代器) for(Iterator<String> it2 = al.iterator();it2.hasNext();) { sop(it2.next()); } sop("\n"); /* //for循環遍歷(vector集合的枚舉) for(Enumeration<String> en = al.elements();en.hasMoreElements();) { sop(en.nextElement()); } sop("\n"); */ //三、for循環加強遍歷 for(String s: al) { sop(s); } } }
在Map集合中使用for高級遍歷(foreach)it
//例子2: io
import java.util.*; class Foreach2 { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args) { Map<String,Integer> hm = new HashMap<String,Integer>(); hm.put("a",1); hm.put("b",2); hm.put("c",3); Set<String> keyset = hm.keySet(); Set<Map.Entry<String,Integer>> entryset = hm.entrySet(); //轉化爲Set集合後,直接用迭代器獲取元素(方法:keySet()) Iterator<String> it1 = keyset.iterator(); while(it1.hasNext()) { String str = it1.next(); Integer in = hm.get(str); sop("str:"+str+" "+"in:"+in); } sop("---------------------"); //轉化爲Set集合後,用for循環高級遍歷獲取元素 for(String str: keyset) { sop("str:"+str+"::"+"in:"+hm.get(str)); } sop("---------------------"); //轉化爲Set集合後,直接用迭代器獲取元素(方法:entrySet()) Iterator<Map.Entry<String,Integer>> it2 = entryset.iterator(); while(it2.hasNext()) { Map.Entry<String,Integer> me = it2.next(); String str = me.getKey(); Integer in = me.getValue(); sop("str:"+str+" "+"in:"+in); } sop("---------------------"); //轉化爲Set集合後,用for循環高級遍歷獲取元素 for(Map.Entry<String,Integer> me: entryset) { sop("str:"+me.getKey()+"....."+"in:"+me.getValue()); } } }