这是一个map中嵌套多层map的方法,TmCisDataItemDef是一个对象,tmCisDataItemDefDao.queryForList()方法从数据库中取出所有TmCisDataItemDef表中的数据放大list中,再变量list,根据对象的字段分级放到map中。
public Map<String, Map<String, Map<String, List>>> getItemDefMap() {
TmCisDataItemDef tmCisDataItemDef = new TmCisDataItemDef();
List<TmCisDataItemDef> list = tmCisDataItemDefDao.queryForList(tmCisDataItemDef);
Map<String, Map<String, Map<String, List<TmCisDataItemDef>>>> productMap
= new HashMap<String, Map<String, Map<String, List<TmCisDataItemDef>>>>();
for (TmCisDataItemDef t : list) {
// 判断机构是否存在
if (productMap.get(t.getCreditOrgCode()) == null) {
productMap.put(t.getCreditOrgCode(),
new HashMap<String, Map<String, List<TmCisDataItemDef>>>());
}
Map<String, Map<String, List<TmCisDataItemDef>>> productInMap = productMap.get(t
.getCreditOrgCode());
// 判断产品是否存在
if (productInMap.get(t.getProductCode()) == null) {
productInMap.put(t.getProductCode(),
new HashMap<String, List<TmCisDataItemDef>>());
}
Map<String, List<TmCisDataItemDef>> productIn2Map = productInMap.get(t.getProductCode());
// 判断维度是否存在
if (productIn2Map.get(t.getDmType()) == null) {
productIn2Map.put(t.getDmType(),
new ArrayList<TmCisDataItemDef>());
}
productIn2Map.get(t.getDmType()).add(t);
}
return productMap;
}