我想要的是根据 Main 中的参数随机选择代理。因此,我不想通过索引选择代理 -
agent.get(i)
- 我想通过其属性随机选择代理。
如果这样的事情是可能的,我会很高兴:
agent.get(randomWhere(agent, a -> a.age > 50 && a.health == "good" && ...));
我知道
randomWhere
函数将返回代理,但不会返回其索引。那么有没有一个函数可以直接执行此操作?
我想到的解决方法是:
1-使用过滤功能列出所有代理:
List agentslist = filter( agent, p -> p.p_gender == false && ...);
这会返回类似:
[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()...“==”仅对基元有效。