嗨,我认为这是一个非常简单的问题,但我现在无法解决;
有两种对象 - RuleObject,TaskObject
以下是RuleObject,TaskObject
的定义
RuleObject
ruleID,RulePatternType,RulePrint
TaskObject
taskID,taskName,Org,ruleID
ruleArrayList
是RuleObjects
的所有对象
taskArrayList
是TaskObjects
的所有对象
最终的形式将获取 TaskObjects
使用的所有 RuleObjects
并按 RuleObjects
排列
就像下面的例子:
RuleObject.RulePatternType1
TaskName1 TaskOrg1 RUleObject.rulePrint1
TaskName2 TaskOrg2 RuleObject.rulePrint1
<小时/>
RuleObject.RulePatternType2
TaskName3 TaskOrg1 RUleObject.rulePrint2
TaskName4 TaskOrg2 RuleObject.rulePrint2
TaskName5 TaskOrg3 RUleObject.rulePrint2
TaskName6 TaskOrg4 RuleObject.rulePrint2
<小时/>
代码片段:
List<TaskObject> taskArrayList = compModIF.getRecurringTasksForOrgsAndEffDate(allOrgIds, effDate);
List<RuleObject> ruleArrayList = compModIF.getComplianceTaskRecurrenceRules();
Map ruleTypes = new HashMap();
Map groupTaskTypes = new HashMap();
Map groupRecurRulesNames = new HashMap();
Map masterMapOfallMaps = new HashMap();
Map recurPrintMap = new HashMap();
Map recurPatternTypeMap = new HashMap();
List groupRecuringTaskTypesList = null;
Map filterRules = new HashMap();
List completedList = new ArrayList();
for(Iterator iter = ruleArrayList .iterator(); iter.hasNext();)
{
RuleObject ruleBase = (RuleObject)iter.next();
ruleTypes.put(ruleBase.getRecurRuleID(),ruleBase);
}
if (recurringTaskList != null)
{
for (Iterator it = taskArrayList .iterator(); it.hasNext();)
{
TaskObject aTaskDef = (TaskObject)it.next();
groupRecuringTaskTypesList = new ArrayList();
if(ruleTypes.containsKey(aTaskDef.getTaskRecurRuleIDAsLong()))
{
RuleObject ruleBase = (RuleObject)ruleTypes.get(aTaskDef.getTaskRecurRuleIDAsLong());
groupRecuringTaskTypesList.add(aTaskDef);
groupTaskTypes.put(ruleBase.getRecurRuleID(),groupRecuringTaskTypesList);
groupRecurRulesNames.put(ruleBase.getRecurRuleID(), ruleBase.getRecurRuleName());
if(ruleBase.getRecurPatternType()==ComplianceCodes.TASK_RECUR_PATTERN_TYPE_DAILY)
{
completedList= getDailyRecursCommentsAsCompleted(ruleBase.printRule());
recurPrintMap.put(ruleBase.getRecurRuleID(), completedList);
}
//groupRecuringTaskTypes = new ArrayList();
recurPatternTypeMap.put(ruleBase.getRecurRuleID(), ruleBase.getRecurPatternType());
}
}
}
这里的问题是对于 1 个规则 ID,有多个数组列表,因此我能够获取最后添加的列表。 任何人都可以为此提出更好的替代方案吗?
最佳答案
关于java - 如何在 HashMap 中添加多个具有相同键的相同类型的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7401732/