2016-08-12 54 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但这个代码会根据各自的年份存储对象吗? –

相关问题