addModule(moduleList, activityList)是一个构造Map的方法,我发现getresult方法循环的时候循环一次却放进去了3个值,这是怎么回事??
知道的请举手哈.
public Map addModule(List moduleList,List activityList)
{
Map moduleMap=new HashMap();
Iterator itr=moduleList.iterator();
Map actiMap=addActivity(activityList);
while(itr.hasNext())
{
String id=((Module)itr.next()).getId();
moduleMap.put(id, addActivity(activityList));
}
return moduleMap;
}
public Map addActivity(List activityList)
{
Map actiMap=new HashMap();
Iterator itr=activityList.iterator();
while(itr.hasNext())
{
Activity acti=(Activity)itr.next();
String id=acti.getId();
if(acti.getAuditObjects().size()!=0)
{
Set auditObjects=acti.getAuditObjects();
actiMap.put(id, addAudit(auditObjects));
}
actiMap.put(id,new Integer(0));
}
return actiMap;
}
public Map addAudit(Set auditObjects)
{
Map auditMap=new HashMap();
Iterator itr=auditObjects.iterator();
while(itr.hasNext())
{
String id=((AuditObject)itr.next()).getId();
auditMap.put(id, new Integer(0));
}
return auditMap;
}
public Map getresult(String filter, List moduleList, List activityList)
{
//构造Map
Map result = addModule(moduleList, activityList);
List qaIssueList = qaStatDAO.getQAIssuesByFilter(filter);
for (int i = 0; i < qaIssueList.size(); i++)
{
QAIssue qaissue = (QAIssue) qaIssueList.get(i);
if (StringUtils.isNotBlank(qaissue.getModuleID()) && StringUtils.isNotBlank(qaissue.getActivityID())
&& StringUtils.isNotBlank(qaissue.getAuditObjectID()))
{
((Map) ((Map) result.get(qaissue.getModuleID())).get(qaissue.getActivityID())).put(qaissue.getAuditObjectID(), new Integer(1));
}
else if (StringUtils.isNotBlank(qaissue.getModuleID()) && StringUtils.isNotBlank(qaissue.getActivityID()))
{
Map moduleMap = (Map) result.get(qaissue.getModuleID());
if (moduleMap.get(qaissue.getActivityID()) instanceof Integer)
{
moduleMap.put(qaissue.getActivityID(), new Integer(1));
}
}
}
return result;
}
知道的请举手哈.
public Map addModule(List moduleList,List activityList)
{
Map moduleMap=new HashMap();
Iterator itr=moduleList.iterator();
Map actiMap=addActivity(activityList);
while(itr.hasNext())
{
String id=((Module)itr.next()).getId();
moduleMap.put(id, addActivity(activityList));
}
return moduleMap;
}
public Map addActivity(List activityList)
{
Map actiMap=new HashMap();
Iterator itr=activityList.iterator();
while(itr.hasNext())
{
Activity acti=(Activity)itr.next();
String id=acti.getId();
if(acti.getAuditObjects().size()!=0)
{
Set auditObjects=acti.getAuditObjects();
actiMap.put(id, addAudit(auditObjects));
}
actiMap.put(id,new Integer(0));
}
return actiMap;
}
public Map addAudit(Set auditObjects)
{
Map auditMap=new HashMap();
Iterator itr=auditObjects.iterator();
while(itr.hasNext())
{
String id=((AuditObject)itr.next()).getId();
auditMap.put(id, new Integer(0));
}
return auditMap;
}
public Map getresult(String filter, List moduleList, List activityList)
{
//构造Map
Map result = addModule(moduleList, activityList);
List qaIssueList = qaStatDAO.getQAIssuesByFilter(filter);
for (int i = 0; i < qaIssueList.size(); i++)
{
QAIssue qaissue = (QAIssue) qaIssueList.get(i);
if (StringUtils.isNotBlank(qaissue.getModuleID()) && StringUtils.isNotBlank(qaissue.getActivityID())
&& StringUtils.isNotBlank(qaissue.getAuditObjectID()))
{
((Map) ((Map) result.get(qaissue.getModuleID())).get(qaissue.getActivityID())).put(qaissue.getAuditObjectID(), new Integer(1));
}
else if (StringUtils.isNotBlank(qaissue.getModuleID()) && StringUtils.isNotBlank(qaissue.getActivityID()))
{
Map moduleMap = (Map) result.get(qaissue.getModuleID());
if (moduleMap.get(qaissue.getActivityID()) instanceof Integer)
{
moduleMap.put(qaissue.getActivityID(), new Integer(1));
}
}
}
return result;
}
标记测试下看看
现在是用模块ID可以得到一个活动的MAP,然后用一个活动ID可以得到它对应的评审MAP,用一个评审ID可以得到它的值0或者1;如果不用MAP,那怎么对应起来??
public Map addModule(List moduleList,List activityList)
{
Map moduleMap=new HashMap();
Iterator itr=moduleList.iterator();
Map actiMap=addActivity(activityList);
while(itr.hasNext())
{
String id=((Module)itr.next()).getId();
moduleMap.put(id, addActivity(activityList));
}
return moduleMap;
}
问题就出在actiMap这个引用这里,把他写进循环里就OK了.