测试了hashmap和treemap的性能
周末在家测试了hashmap和treemap的性能,分别产生指定数目的随机数,然后依次放到不同的容器中,记录一下放之前和放之后的时间。然后再根据产生的随机数,在容器中中读一把,记录一下读之前和读之后的时间。
hashmap的测试代码如下:
- 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()));
- }
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的结果

浙公网安备 33010602011771号