测试Map和List循环查找某个元素的效率

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TestCollection {

       private List int_list;
      
       private Map int_map;
      
      
       public void testListSpeed(Integer[] search_int){
              for(Integer n : search_int){
                     for(int i=0;i
                            if(n==int_list.get(i))
                                   break;
                     }
              }
       }
      
       public void testMapSpeed(Integer[] search_int){
              for(Integer n : search_int){
                     if(int_map.containsKey(n))
                            int_map.get(n);
              }
       }
      
       public void init(Integer[] search_int){
              int_list = new ArrayList();
              int_map = new HashMap();
              for(int i=0;i
                     int_list.add(search_int[i]);
                     int_map.put(search_int[i], search_int[i]);
              }
       }
      
       public static void main(String[] args){
              int max = 10000;
              Integer[] x = new Integer[max];
              for(int j=0;j
                     x[j] = j;
              }
              TestCollection tc = new TestCollection();
              long start = System.currentTimeMillis();
              tc.init(x);
              long finish = System.currentTimeMillis();
              System.out.println("初始化"+max+"个数据用时间 = "+(finish-start)+" ms");
              start = System.currentTimeMillis();
              tc.testListSpeed(x);
              finish = System.currentTimeMillis();
              System.out.println("执行testListSpeed用时 = "+(finish-start)+" ms");
              start = System.currentTimeMillis();
              tc.testMapSpeed(x);
              finish = System.currentTimeMillis();
              System.out.println("执行testMapSpeed用时 = "+(finish-start)+" ms");
       }
}

结果
初始化10000个数据用时间 = 10 ms
执行testListSpeed用时 = 720 ms
执行testMapSpeed用时 = 0 ms
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值