返回java中整数参数的最大值

时间:2013-11-01 23:54:59

标签: java max

我想知道java中是否有一个方法将变量作为参数并返回最大整数值,或者我应该为此编写自己的方法。在我的程序中,我有4个不同的整数,每次调用方法都会改变,并且都存储在不同的变量(rightDiag,leftDiag,hor和vert)中,用于tic tac toe游戏,最后我必须确定哪个有最高价值。 是否有任何方法可以将这些变量作为参数并返回所有四个中的最高整数? (或沿着这些方向的东西)或者我应该编写自己的“最大”方法吗?

谢谢大家!

5 个答案:

答案 0 :(得分:3)

Math.max()适用于2个参数。它是这样实现的:

int max(int a, int b) {
  return a > b ? a : b;
}

希望这足以激发您自己的实施。

答案 1 :(得分:3)

如果您已准备好使用Java 8:

int max = IntStream.of(a, b, c, d).max().getAsInt();

但Java 7中没有这样的东西。

答案 2 :(得分:1)

Math.max只接受两个参数,但您可以重复使用它:

Math.max(rightDiag, Math.max(leftDiag, Math.max(hor, vert)))

或者,如果你想要想象,你可以编写一个采用可变数量参数的方法:

static int max(int... parameters) {
    // left as an exercise
}

并且代码会将parameters视为int[]数组,您可以浏览数组并找到最大的数组。

答案 3 :(得分:0)

有很多方法可以实现这样的方法。如果您不想使用大量if语句来确定哪个值最高,则可以将所有值存储在数组中,循环遍历数组并保持指向数组中最高值的指针,然后返回价值最后。

答案 4 :(得分:0)

static int max(int... args) 
{ //This is one implementation, but for practice, try doing one with a foreach loop instead.
    int result=args[0];
    for(int i=1;i<args.length;i++)
    {
        result=Math.max(result,args[i]);
    }
    return result;
}

然后你可以打电话

int maxValue = max(rightDiag, leftDiag, hor, vert);