2025-05-17

 第一種:


  Map map = new HashMap();


  Iterator iter = map.entrySet().iterator();


  while (iter.hasNext()) {


  Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey();


  Object val = entry.getValue();


  }


  效率高,以後一定要使用此種方式!


  第二種:


  Map map = new HashMap();


  Iterator iter = map.keySet().iterator();


  while (iter.hasNext()) {


  Object key = iter.next();


  Object val = map.get(key);


  }


  效率低,以後盡量少使用!


  HashMap的遍歷有兩種常用的方法,那就是使用keyset及entryset來進行遍歷,但兩者的遍歷速度是有差別的,下面請看實例:


  public class HashMapTest {


  public static void main(String[] args) …{


  HashMap hashmap = new HashMap();


  for (int i = 0; i < 1000; i ) …{


  hashmap.put(“” i, “thanks”);


  }


long bs = Calendar.getInstance().getTimeInMillis();


  Iterator iterator = hashmap.keySet().iterator();


  while (iterator.hasNext()) …{


  System.out.print(hashmap.get(iterator.next()));


  }


  System.out.println();


  System.out.println(Calendar.getInstance().getTimeInMillis() – bs);


  listHashMap();


  }


  public static void listHashMap() …{


  java.util.HashMap hashmap = new java.util.HashMap();


  for (int i = 0; i < 1000; i ) …{


  hashmap.put(“” i, “thanks”);


  }


  long bs = Calendar.getInstance().getTimeInMillis();


  java.util.Iterator it = hashmap.entrySet().iterator();


  while (it.hasNext()) …{


  java.util.Map.Entry entry = (java.util.Map.Entry) it.next();


  // entry.getKey() 返回與此項對應的鍵


  // entry.getValue() 返回與此項對應的值


  System.out.print(entry.getValue());


  }


  System.out.println();


  System.out.println(Calendar.getInstance().getTimeInMillis() – bs);


  }


  }


  對於keySet其實是遍歷瞭2次,一次是轉為iterator,一次就從hashmap中取出key所對於的value。而entryset隻是遍歷瞭第一次,他把key和value都放到瞭entry中,所以就快瞭。


  註:Hashtable的遍歷方法和以上的差不多!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *