首页 > 解决方案 > 使用for循环解除阻塞“保持”的方法?

问题描述

我正在使用 AnyLogic 进行模拟。

我想检查每个队列(从 1 到 10 的队列)是否包含代理。

如果它包含,则取消阻止链接到队列的保持,如果不保持阻止。

我正在使用 LinkedList 访问每个队列并保持:

我的代码:

LinkedList holds = new LinkedList();
holds.add(VIP_Female_Hold);
holds.add(VIP_Male_Hold);
holds.add(FT_Appoin_Female_Hold);
holds.add(FT_Walkin_Female_Hold);
holds.add(Stand_Appoin_Female_Hold);
holds.add(Group_Appoint_Female_Hold);
holds.add(Stand_Walkin_Female_Hold);
holds.add(Group_Appoint_Male_Hold);
holds.add(FT_Appoint_Male_Hold);
holds.add(Stand_Appoint_Male_Hold);
holds.add(FT_Walkin_Male_Hold);
holds.add(Stand_Walkin_Male_Hold);
holds.add(Determination_Hold);

LinkedList queues = new LinkedList();
queues.add(VIP_Female_Q);
queues.add(VIP_Male_Q);
queues.add(FT_Appoin_Female_Q);
queues.add(FT_Walkin_Female_Q);
queues.add(Stand_Appoin_Female_Q);
queues.add(Group_Appoint_Female_Q);
queues.add(Stand_Walkin_Female_Q);
queues.add(Group_Appoint_Male_Q);
queues.add(FT_Appoint_Male_Q);
queues.add(Stand_Appoint_Male_Q);
queues.add(FT_Walkin_Male_Q);
queues.add(Stand_Walkin_Male_Q);
queues.add(Determination_Q);


for (int i = 0 ; i < queues.size() ; i++)
{
    if (queues.contains(i) == true)
}

我从队列和其他 LinkedList 创建了 1 个 LinkedList 以进行保留。我只想知道如何编写解锁语句。我试过了

hold(i).unblock();

但这没有用。

我也尝试在函数中编写代码,然后在“事件”中编写条件。它没有用

有任何想法吗?

标签: javalinked-listqueueanylogic

解决方案


如果 hold 是一组代理,hold(i) 会起作用,但它不是......并且您的链表称为hold not hold,因此请注意您选择的名称。

你这样做的方式是:

holds.get(i).unblock();

不要忘记适当地定义您的集合的对象......例如对于保持集合: 持有收藏

对于队列集合,对象类型是队列


推荐阅读