【发布时间】:2013-03-28 05:01:17
【问题描述】:
所以我希望随机化调用某些方法的方式,以便每个实例只调用一次,并且每个方法都被调用。
所以说一个实例,它们按顺序调用:
方法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;
}
【问题讨论】:
-
我最初的直觉是一个基于随机数和状态标志的 switch 语句,以指示调用了哪些方法。
-
@jocopa3 - 你编写了很多代码只是为了随机化。不是很好。看看我发布的答案是否可以简化您的任务。这是一个非常基本的解决方案。
标签: java random unique method-call