gpt4 book ai didi

java - 以随机唯一顺序调用方法?

转载 作者:行者123 更新时间:2023-12-01 18:51:44 25 4
gpt4 key购买 nike

因此,我希望随机化某些方法的调用方式,以便每个实例仅调用一次每个方法,并且调用每个方法。

所以说一个实例,它们按顺序被调用:

方法2方法4方法3方法1

但在下一个实例中,它们会以不同的顺序调用:

方法3方法2方法1方法4

我必须随机化顺序的代码如下所示:

public void randomCalls(){
int[] order = new int[4];

for(int i=0; i<order.length; i++){
order[i]=nextNumber(order);
}
}

public int nextNumber(int[] array){
Random r = new Random();
int x = r.nextInt();
for(int i=0; i<array.length; i++){
if(arrayHasNumber(array,x)){
x = nextNumber(array);
}
}
return x;
}

public boolean arrayHasNumber(int[] array, int x){
for(int i=0;i<array.length;i++){
if(array[i]==x){
return true;
}
}
return false;
}

最佳答案

根据@Aurand的建议,您可以有一个开关来调用您的方法和 List<Integer>它将包含您要调用的方法的索引,然后使用 Collections.shuffle 对列表元素进行打乱并调用 switch调用你的方法。代码示例:

final int METHODS_QUANTITY = 4;
List<Integer> lstIndexes = new ArrayList<Integer>();
for(int i = 1; i <= METHODS_QUANTITY; i++) {
lstIndexes.add(i);
}
//you can change the condition for the number of times you want to execute it
while(true) {
Collections.shuffle(lstIndexes);
for(Integer index : lstIndexes) {
switch(index) {
case 1: method1(); break;
case 2: method2(); break;
case 3: method3(); break;
case 4: method4(); break;
}
}
}

仍然存在问题:为什么在现实世界的应用程序中需要这个?

关于java - 以随机唯一顺序调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15674592/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com