Java 获得相同的随机数

Java 获得相同的随机数,java,random,Java,Random,我想生成一个随机数应用于一些数组,以便在每次执行中获得不同的元素。 数组包含运动产品的名称(产品、尺寸、价格等)。通过这样做,我想随机生成一个字符串,但是在程序的每次执行中,我都得到相同的结果 问题在哪里 下面是generaProductos类中的代码: public void generaProductos() { int num; for (int i=0;i<3;i++){ num = (int) Math.random() * 3;

我想生成一个随机数应用于一些数组,以便在每次执行中获得不同的元素。 数组包含运动产品的名称(产品、尺寸、价格等)。通过这样做,我想随机生成一个字符串,但是在程序的每次执行中,我都得到相同的结果

问题在哪里

下面是generaProductos类中的代码:

public void generaProductos() {
    int num;
    for (int i=0;i<3;i++){
        num = (int) Math.random() * 3;
        String cliente = tipoProducto[num] + " " + deporte[num] + " " +
                         destinatario[num] + " " + color[num] + " " + tallaRopaAdulto[num]
                         + " " +   preciosIVA[num];
        System.out.println(cliente);
     }
     return;
 }
当我执行代码时,我总是收到以下信息:

Botas Futbol Hombre Marron S 16.99

Botas Futbol Hombre Marron S 16.99

Botas Futbol Hombre Marron S 16.99


(在英语中是橄榄球靴男式棕色尺码S 16.99)

您将0和1之间的浮点值(排除)转换为
int
,结果为0,然后将0乘以3,仍然为0

改变

(int) Math.random() * 3
(int) (Math.random() * 3)

由于优先顺序的原因,将始终为
0


Math.random()
总是
<1
,因此将其转换为
int
将得到0,然后进行乘法,仍然得到0。

您可以使用java的数学库生成随机整数。如果您使用
Math.random()
,那么您将只得到0.0到0.1范围内的随机数

如果您想在大范围的整数之间取随机整数,那么您可以通过提供两个整数输入(即最小值和最大值)来使用以下函数

public static int RandInt(int max, int min){
    return ((int) (Math.random()*(max - min))) + min;
}

我想你的意思是
Math.random()
会给出一个介于0和1之间的随机数yes。。java中lang包的Math.random()返回一个带正号的双精度值,大于或等于0.0,小于1.0,然后您可能希望在答案中更正它!
num = (int) Math.random() * 3;
public static int RandInt(int max, int min){
    return ((int) (Math.random()*(max - min))) + min;
}