测试了hashmap和treemap的性能

周末在家测试了hashmap和treemap的性能,分别产生指定数目的随机数,然后依次放到不同的容器中,记录一下放之前和放之后的时间。然后再根据产生的随机数,在容器中中读一把,记录一下读之前和读之后的时间。
hashmap的测试代码如下:

Java代码                          

  1. List<Integer> keys = new ArrayList<Integer>(S_Len);        
  2.         HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();        
  3.         {        
  4.             Random random = new Random();        
  5.             for(int i=0;i<S_Len;i++){   
  6.                 int key = random.nextInt();        
  7.                 keys.add(key);        
  8.                         
  9.             }        
  10.         }        
  11.         {        
  12.                     
  13.             Date date = new Date();        
  14.             for(Integer key:keys){        
  15.                         
  16.                 map.put(key, key);        
  17.             }        
  18.             System.out.println("put time=" + (new Date().getTime()-date.getTime()));        
  19.         }        
  20.                 
  21.         {        
  22.                     
  23.             Date date = new Date();        
  24.             for(Integer key:keys){        
  25.                         
  26.                 map.get(key);        
  27.             }        
  28.             System.out.println("get time=" + (new Date().getTime()-date.getTime()));        
  29.         }  

List<Integer> keys = new ArrayList<Integer>(S_Len);

   HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();

   {

     Random random = new Random();

     for(int i=0;i<S_Len;i++){

      int key = random.nextInt();

      keys.add(key);

     

     }

   }

   {

    

     Date date = new Date();

     for(Integer key:keys){

     

      map.put(key, key);

     }

     System.out.println("put time=" + (new Date().getTime()-date.getTime()));

   }

  

   {

    

     Date date = new Date();

     for(Integer key:keys){

     

      map.get(key);

     }

     System.out.println("get time=" + (new Date().getTime()-date.getTime()));

   }


treemap的代码很类似,只有第二行HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();变成了TreeMap<Integer, Integer> map = new TreeMap<Integer, Integer>();测试出来的结果应该是hashmap完胜treemap。
hashmap的结果



treemap的结果 

 

posted @ 2014-08-06 16:27  爱逛丫  阅读(241)  评论(0)    收藏  举报