AnyLogic技术问询:Pickup后无需Dropoff如何选中已拾取Agent
在AnyLogic中选中已拾取的指定Agent(无需Dropoff)
- 先明确:当Agent A用Pickup模块完成拾取后,所有被它拾起来的Agent都会存在一个集合里——默认叫
pickedUpAgents,要是你在Pickup模块里改了集合名称,就用你改后的那个。 - 要选中指定的Agent(比如c),有两种常用方法:
- 按Agent的唯一属性找:如果你的Agent有唯一标识(比如自定义的
name或id属性),用集合的findFirst方法就能定位:
运行这段代码后,Agent targetC = agentA.pickedUpAgents.findFirst( a -> a.name.equals("c") );targetC就指向了你要找的Agent c。 - 按拾取顺序找:要是你清楚Agent c是第几个被拾取的,直接用索引取就行(注意集合索引从0开始):
Agent targetC = agentA.pickedUpAgents.get(2); // 比如c是第三个被拾取的,索引就是2
- 按Agent的唯一属性找:如果你的Agent有唯一标识(比如自定义的
- 找到之后,你可以直接对
targetC做任何操作——改属性、触发它的自定义函数都可以,完全不用先执行Dropoff。
内容的提问来源于stack exchange,提问作者jiz148
相关产品推荐
相关产品推荐

