如何 select agents using (randomWhere) from Main
How to select agents using (randomWhere) from Main
我想要的是根据 Main 中的参数随机 select 代理。因此,与其 select 通过其索引 - agent.get(i)
代理 - 我想通过其属性随机 select 代理。
如果这样的事情是可能的,我会很高兴:
agent.get(randomWhere(agent, a -> a.age > 50 && a.health == "good" && ...));
我知道 randomWhere
函数将 return 代理,而不是它的索引。那么是否有可以直接执行此操作的函数?
我想到的解决办法是:
1-列出所有使用过滤功能的代理:
List agentslist = filter( agent, p -> p.p_gender == false && ...);
这会 return 类似 :
[root.agent[1]( p_gender = false,...),root.agent[5]( p_gender = false,...),root.agent[17]( p_gender = false,...)]
2- 我使用 Regex
遍历代理列表,从新列表中的 [ ]
之间获取每个代理的索引。基于此示例,此新列表将具有这些值 [1,5,17]
.
3- 最后,我从新列表中随机选择并直接在 agent.get(i)
中输入它的值。
有更好的方法吗?
提前致谢,
要获取索引,只需使用 getIndex()
函数。
int index=randomWhere(yourAgents,a->a.age>50 && a.health.equals("good")).getIndex();
agent.get(index);
记得在比较字符串时使用 equals()...“==”仅对基元有效。
我想要的是根据 Main 中的参数随机 select 代理。因此,与其 select 通过其索引 - agent.get(i)
代理 - 我想通过其属性随机 select 代理。
如果这样的事情是可能的,我会很高兴:
agent.get(randomWhere(agent, a -> a.age > 50 && a.health == "good" && ...));
我知道 randomWhere
函数将 return 代理,而不是它的索引。那么是否有可以直接执行此操作的函数?
我想到的解决办法是:
1-列出所有使用过滤功能的代理:
List agentslist = filter( agent, p -> p.p_gender == false && ...);
这会 return 类似 :
[root.agent[1]( p_gender = false,...),root.agent[5]( p_gender = false,...),root.agent[17]( p_gender = false,...)]
2- 我使用 Regex
遍历代理列表,从新列表中的 [ ]
之间获取每个代理的索引。基于此示例,此新列表将具有这些值 [1,5,17]
.
3- 最后,我从新列表中随机选择并直接在 agent.get(i)
中输入它的值。
有更好的方法吗?
提前致谢,
要获取索引,只需使用 getIndex()
函数。
int index=randomWhere(yourAgents,a->a.age>50 && a.health.equals("good")).getIndex();
agent.get(index);
记得在比较字符串时使用 equals()...“==”仅对基元有效。