Collection
智能体可以包含变量。变量通常用于存储模型模拟的结果,对一些随着时间变化的数据或对象特征进行建模。
Variable是任务标量类型或Java类得简单变量。
集合表示一组对象,称其为元素。一些集合允许重复元素,而另一些则不允许。有些是有序的,有些是无序的。集合用于定义将多个元素分组为单个单元的数据对象。集合用于存储、检索和操作聚合数据。通常,他们表示形成一个自然组的数据项,例如队列(再本例中,元素表示在队列中等待的人员),或autopark(元素是卡车),或电话目录(集合执行名称到电话号码的映射)。
与其他Anylogic变量一样,在整个模型模拟过程中,可以从代码访问集合,因此可以通过集合API简单地访问和修改它们的内容。
案例
•在基于智能体的模型中,集合可用于存储一组智能体或者变量——例如,给定智能体的邻居或同事。
•在离散事件模型中,您可以使用集合来控制在队列或服务对象中持有的智能体,方法是在对象进入动作时将智能体添加到集合中,在退出时将智能体从那里移除。
集合的使用方法:
1.将集合元素从智能体选项板拖到智能体类型或实验的图形关系图上。
2.设置集合属性。
3.在“名称”编辑框中键入集合的名称。名称用于标识和访问代码中的变量。
4. 指定集合的类。您可以从“集合类”组合框中选择最常用的一个类,也可以指定任何其他您希望的集合类。
5.如果集合是列表或集合(集合类是ArrayList、LinkedList、LinkedHashSet或TreeSet),请在这里指定集合元素的类。您可以从Elements类组合框中选择一个最常用的类,或者指定任何其他Java类。选择Object可以让集合存储任何Java类的元素。
6. 可以初始化集合,其中包含在其初始内容部分中指定的元素集。要添加元素,单击按钮从下拉列表中选择元素,或者首先单击该按钮,然后在图形编辑器中选择元素。只能选择与集合的elements类对应的元素。
如果在初始内容部分没有选择任何元素,则集合将初始化为空。您可以在以后使用集合API动态地修改集合的内容。
7.如果集合是映射(集合类是TreeMap或LinkedHashMap),则在Key elements类字段中指定该映