问题描述
我有4个具有举报行为的代理,每个代理在每个步骤之后将值发送给接收者代理,我希望此接收器将来自代理的接收值存储在4个数组中(每个数组用于一个发送者) 如何实现接收方代理行为?
解决方法
类似这样的东西
public class ReceiveMessageBehaviour extends CyclicBehaviour {
private Map<AID,String[]> values = new HashMap<>();
@Override
public void action() {
ACLMessage aclMessage = myAgent.receive();
if(aclMessage == null){
return;
}
String value = aclMessage.getContent();
String[] aidValues = values.get(aclMessage.getSender());
if(aidValues == null){
aidValues = new String[]{value};
values.put(aclMessage.getSender(),aidValues);
} else {
values.put(aclMessage.getSender(),ArrayUtils.add(aidValues,value));
}
}
}