2013-01-31 350 views
-1

如何从Java中的给定数字列表中随机选择一个数字?选择一个随机数

我只有这5个数字:1000,2000,3000,4000,5000

现在我必须选择从这一组数字中随机任意一个数字。

我的代码试试这个

int ar[] = new int[4]; 
ar[0] = 1000; 
ar[1] = 2000; 
ar[2] = 3000; 
ar[4] = 4000; 

int randomArrayIndex = num.nextInt(ar.length); 
+2

什么是'num'?你的代码的结果是什么(这是不完整的,我猜)?请发布您尝试过的完整代码。 –

+2

鉴于'num'是Random类的一个实例,所以你做得很对。这个代码是什么_not_为你工作? –

+2

@AudriusMeškauskas..可能适合你,而不是OP。 –

回答

6
int randomArrayIndex = new Random().nextInt(ar.length); 
int number = ar[randomArrayIndex]; 
+0

它可以多次生成相同的数字。 –

+1

@AchintyaJha,那又如何?没有那样的要求。 –

1

试试这个

public static int myRandom(int low, int high) { 
    return (int) (Math.random() * (high - low) + low); 
} 

,并设置低和高0和4

+0

+1或者你可以有1和最高的5和1000的多个 –

1

如果你不想重复来自原始阵列的数字:

Integer [] array = {1000,2000,3000,4000}; 
Collections.shuffle(Arrays.asList(array)); 

如果从给定数组中只需要一个随机数。

int[] array = {1000,2000,3000,4000}; 

int randomNumber = array[(int)(Math.random()*array.length)]; 
+1

过度工程? :) – Destrictor

+0

@Destrictor它不是一个好方法? –

+1

如果你只想要一个号码,这似乎有点浪费:)。如果他以随机顺序需要所有这些,这是一个非常好的解决方案。 – Destrictor