加入ArrayList的有效方法

时间:2012-02-21 17:35:54

标签: java join map arraylist

我正在寻找一种从以下两个列表中创建列表/地图等的有效方法,我可以使用它来获取规则的当前和过去状态。

            List<Boolean> rulesCurrentStatus = new ArrayList<Boolean>(); // 3 Rules: false/true meaning if the rule passed of failed
             rulesCurrentStatus.add(false);
             rulesCurrentStatus.add(true);
             rulesCurrentStatus.add(false);

            List<Boolean> rulesPreviousStatus = new ArrayList<Boolean>();  // Previous state of the above 3 rules.

            rulesPreviousStatus.add(true);
            rulesPreviousStatus.add(true);
            rulesPreviousStatus.add(false);

2 个答案:

答案 0 :(得分:1)

您可以使用Map类型的键和布尔类型的值。您可以使用键区分当前值和上一个值。例如使用类似C#1,C#2的关键字存储所有当前值,并使用类似P#1,P#2等关键字存储先前的值。

答案 1 :(得分:1)

如果我理解正确,您希望获得规则的状态历史记录。 那么这可能会有所帮助:

Map<Rule( or ruleName as String), List<Boolean>>

该地图中的关键字是规则对象,例如字符串表示哪个规则。值是一个列表(例如ArrayList),存储状态历史记录。例如:

{"rule1":[True, False,True]   //1st,2nd,3rd(current) status
"rule2":[True,False]
...
}

因此,如果您想通过

获取规则的整个状态历史记录
List<Boolean> history =   map.get("someRule")

然后您可以添加新状态,或通过播放列表获得特定状态。

如果您只需要pre和current,则可以使用初始容量声明List。