性能优化:Map的合理运用

现实使用场景:用于大数据量处理(导入之类的),excel表里有jb、zy的code码,需要根据jb的code、zy的code去某张表里查询jb code的码对应的级别名称和zy code码对应的专业名称。因为数据量庞大,一个个查浪费了太多性能,而放到Map这种内存级别的,速度几乎就是秒杀!

public class TestClient {

    public static void main(String[] args) {

        List<TreeCode> jbList= treeCodeBiz.getJbList(ksid);
        Map<String,TreeCode> jbMap = newHashMap<String, TreeCode>();
        Map<String,Map<String, String>> zyMap = new HashMap<String, Map<String, String>>();

        //级别和专业是一张表,专业挂在级别下。
        for(int i = 0; i < jbList.size(); i++) {
            jbMap.put(jbList.get(i).getText(), jbList.get(i));

            String jbid= jbList.get(i).getId();
            String jbcode= jbList.get(i).getCode();

            List<TreeCode> zyList = treeCodeBiz.getZyList(ksid, jbid);
            Map<String,String> tempin= newHashMap<String, String>();

            for(int j = 0; j < zyList.size(); j++) {
                tempin.put(zyList.get(j).getText(), zyList.get(j).getCode());
            }

            zyMap.put(jbcode, tempin);
        }

        //excel级别值转换成码
        String excelJbValue= (String)map.get("报考级别");
        TreeCode jbTreeCode= jbMap.get(excelJbValue);
        String jbCode= jbTreeCode.getCode();

        //excel专业值转换成码
        String excelZyValue= (String)map.get("报考专业");
        Map<String,String> inMap= zyMap.get(jbCode);
        String zyCode= inMap.get(excelZyValue);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值