1. 程式人生 > >Java 集合系列18之 Iterator和Enumeration比較

Java 集合系列18之 Iterator和Enumeration比較

 1 import java.util.Enumeration;
 2 import java.util.Hashtable;
 3 import java.util.Iterator;
 4 import java.util.Map.Entry;
 5 import java.util.Random;
 6 
 7 /*
 8  * 測試分別通過 Iterator 和 Enumeration 去遍歷Hashtable
 9  * @author skywang
10  */
11 public class IteratorEnumeration {
12 
13     public
static void main(String[] args) { 14 int val; 15 Random r = new Random(); 16 Hashtable table = new Hashtable(); 17 for (int i=0; i<100000; i++) { 18 // 隨機獲取一個[0,100)之間的數字 19 val = r.nextInt(100); 20 table.put(String.valueOf(i), val);
21 } 22 23 // 通過Iterator遍歷Hashtable 24 iterateHashtable(table) ; 25 26 // 通過Enumeration遍歷Hashtable 27 enumHashtable(table); 28 } 29 30 /* 31 * 通過Iterator遍歷Hashtable 32 */ 33 private static void iterateHashtable(Hashtable table) {
34 long startTime = System.currentTimeMillis(); 35 36 Iterator iter = table.entrySet().iterator(); 37 while(iter.hasNext()) { 38 //System.out.println("iter:"+iter.next()); 39 iter.next(); 40 } 41 42 long endTime = System.currentTimeMillis(); 43 countTime(startTime, endTime); 44 } 45 46 /* 47 * 通過Enumeration遍歷Hashtable 48 */ 49 private static void enumHashtable(Hashtable table) { 50 long startTime = System.currentTimeMillis(); 51 52 Enumeration enu = table.elements(); 53 while(enu.hasMoreElements()) { 54 //System.out.println("enu:"+enu.nextElement()); 55 enu.nextElement(); 56 } 57 58 long endTime = System.currentTimeMillis(); 59 countTime(startTime, endTime); 60 } 61 62 private static void countTime(long start, long end) { 63 System.out.println("time: "+(end-start)+"ms"); 64 } 65 }