java多層map巢狀案例
阿新 • • 發佈:2019-01-07
這是做專案事service層的一個方法,TmCisDataItemDef是一個物件,tmCisDataItemDefDao.queryForList()方法從資料庫中取出所有TmCisDataItemDef表中的資料放大list中,再變數list,根據物件的欄位分級放到map中。 public Map<String, Map<String, Map<String, List<TmCisDataItemDef>>>> 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; }