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

本文通过一个简单的Java程序对比了ArrayList和HashMap在查找操作上的性能差异。通过对1万个整数进行查找,展示了HashMap在查找速度上远超ArrayList的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、付费专栏及课程。

余额充值