现实使用场景:用于大数据量处理(导入之类的),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);
}
}