如何为集合和函数列表创建嵌套 for 循环

How to create a nested for loop for a list of collections and functions

我想创建一个可以执行以下操作的嵌套 for 循环:

for (Collection c : collection_of_all_collections){
    for (Wait w : collection_of_all_waits){
        function(c, w);
    }
}

//注意:这些等待不是主要的,所以我按位置将它们列为 location.wait_ID

该函数将执行以下操作:

//1-访问等待实体中的每个代理来检查参数值

//2-如果参数值为true则将代理索引加入集合c

for (Agent me1 : w.waitingEntities )
    if (households(me1.getIndex()).p_HH_willing_to_change == true){
         collection0.add(households(me1.getIndex()).getIndex());
    }else{}

//3- 对于集合 c 中的每个项目,使该代理免于等待 w

for (int i : c){
    w.free(households(i));
}

这就是您如何释放所有具有参数=true 并处于等待块中的代理....希望这是您想要的。你的算法有点乱

    List <Agent> trueAgents=findAll(agents,a->a.parameter && a.currentBlock() instanceof Wait);

    for(Agent a : trueAgents){
        ((Wait)a.currentBlock()).free(a);
    }

这可以进一步简化,当参数更改为 true 时创建一个事件,以便立即从等待块中释放代理,而无需所有这些循环...但这取决于您的模型如何工作,所以我不会'不深入这些细节。