有没有办法得到随机整数的Math.min()值?JAVA

有没有办法得到随机整数的Math.min()值?JAVA,java,math,random,int,Java,Math,Random,Int,我目前正在制作一个游戏,我正在尝试比较屏幕上显示的最短路径(这是一个随机生成的整数路径)和用户选择的路径。这部分代码是我试图获取屏幕上总路径的Math.min()的代码: int path1 = randomNum3 + randomNum8; int path2 = randomNum2 + randomNum7; int path3 = randomNum + randomNum6; int path4 = randomNum3 + randomNum5 + randomNum7; int

我目前正在制作一个游戏,我正在尝试比较屏幕上显示的最短路径(这是一个随机生成的整数路径)和用户选择的路径。这部分代码是我试图获取屏幕上总路径的
Math.min()
的代码:

int path1 = randomNum3 + randomNum8;
int path2 = randomNum2 + randomNum7;
int path3 = randomNum + randomNum6;
int path4 = randomNum3 + randomNum5 + randomNum7;
int path5 = randomNum2 + randomNum5 + randomNum8;
int path6 = randomNum + randomNum4 + randomNum7;
int path7 = randomNum2 + randomNum4 + randomNum6;


int caminoMasCorto = Math.min(path1, path2, path3, path4, path5,
        path6, path7);
显示给我的错误是:

找不到适合min的方法(int,int,int,int,int,int,int,int)

方法Math.min(int,int)不适用

(实际参数列表和正式参数列表长度不同)


对。正如错误所说,
Math.min(int,int)
接受两个参数。改变

int caminoMasCorto = Math.min(path1, path2, path3, path4, path5,
        path6, path7);

(如Andreas所述)

或者,您可以编写自己的
min
函数,该函数接受任意数量的
int
(s)并返回最小值。像

private static int myMin(int... vals) {
    if (vals == null || vals.length < 1) {
        throw new RuntimeException("No values");
    }
    int t = vals[0];
    for (int i = 1; i < vals.length; i++) {
        t = Math.min(t, vals[i]);
    }
    return t;
}

使用您认为可读性最好的参数。

Java的
Math.min
接受两个参数。要将其扩展到多个数字,请尝试以下方法:

public int minExtension (int... numbers) {
    int minimum = numbers[0];

    for (int number : numbers) {
        minimum = Math.min(number, minimum)
    }

    return minimum
}
这样说吧

int caminoMasCorto = minExtension (path1, path2, path3, path4, path5, path6, path7);

要查找大量
int
变量的最小值,请使用:

int caminoMasCorto = IntStream.of(path1, path2, path3, path4, path5,
        path6, path7).min().getAsInt();
如果您没有使用Java 8+,可以执行以下操作:

int caminoMasCorto = path1;
for (int value : new int[] { path2, path3, path4, path5, path6, path7 })
    caminoMasCorto = Math.min(caminoMasCorto, value);

我认为这样看起来更好:
Math.min(Math.min(Math.min)(Math.min(Math.min)(Math.min(path1,path2),path3,path4),path5,path6),path7)@Andreas可读性在旁观者眼中。
int caminoMasCorto = minExtension (path1, path2, path3, path4, path5, path6, path7);
int caminoMasCorto = IntStream.of(path1, path2, path3, path4, path5,
        path6, path7).min().getAsInt();
int caminoMasCorto = path1;
for (int value : new int[] { path2, path3, path4, path5, path6, path7 })
    caminoMasCorto = Math.min(caminoMasCorto, value);