2016-08-12 134 views
0

我有一個Arralist包含一組對象,其中每個對象都有字段(deptname,year,count)。我知道,我們可以動態使用循環根據標準動態創建Arraylist並向其添加數據

 List<List<ReportEPVO>> dataList = new ArrayList<List<ReportEPVO>>(); 

    for(int i = 1; i <= n; i++) { 
     List<ReportEPVO> tempList = new ArrayList<ReportEPVO>(); 
     dataList.add(tempList); 
    } 

我的要求是,例如創建的ArrayList:有分別年字段2013,2014,2015對象。我想動態創建數組列表,並在同一數組列表中添加具有相同年份字段的對象。任何幫助?請不要downvote我是新的datastructures ..

這可能是代碼添加對yearfield 2013對象到名爲temp13的arraylist。

List<ReportEPVO> temp13 = new ArrayList<ReportEPVO>(); 
    for(ReportEPVO re : reportEPvo) { 
     if(re.getJoinYear().equals("2013")) 
      temp13.add(re); 
    } 

如何創建動態數組列表動態存儲對象,例如與2013年,2014年等yearfields?

+0

請出示你寫來實現的代碼。 – Suyash

+0

請僅用一個真實的例子縮寫..你並不太清楚你的觀點。 Thanx –

+0

如果您嘗試根據字段的值對記錄進行分組,您應該使用Map查看。 – BevynQ

回答

0

一般來說,在這種情況下,我會做這樣的事情

Map<String, List<MyObject> myListMap = new HashMap(); 

for(MyObject myObject : myObjects){ 
    List<Object> myObjectList = myListMap.get(myObject.getIndexAttribute()); 
    if(myObjectList == null){ 
     myObjectList = new ArrayList(); 
     myListMap.put(myObject.getIndexAttribute(), myObjectList); 
    } 
    myObjectList.add(myObject); 
} 
+0

請不要介意你需要Map > myListMap = new HashMap();在代碼中的權利? –

+0

是的,我編輯過的密鑰可以是任何對象類型 – BevynQ

+0

okk但這個代碼會根據各自的年份存儲對象嗎? –