我们正在创建一个由 JADE Agent 结构中的 AID 组成的树形结构。我们选择递归执行,这样无论系统中当前有多少代理程序,代码都可以执行,树结构可以动态更改以适应系统中当前代理程序的数量。我不确定是否需要设置某种锁以确保Map
读取和写入对象而不破坏结构的完整性。
这是导致问题的代码。
// BuildHierarchy method used to create the hierarchy based on Monitor Agents in the system
private void BuildHierarchy(Map<AID, Double>freqList, ArrayList<AID> childless, DefaultMutableTreeNode node){
int i = 0;
//creates an iterator for the freqList
Iterator iter = freqList.entrySet().iterator();
while(iter.hasNext()&& i < 2){
Map.Entry pairs = (Map.Entry)iter.next();
//if (i<2){
setParentNode((AID)pairs.getKey(), node);
//}
freqList.remove(pairs.getKey());
i++;
}
BuildHierarchy(freqList, childless, node.getNextNode());
BuildHierarchy(freqList, childless, node.getNextNode().getNextSibling());
}