Java计算的变量数最少

Java计算的变量数最少,java,Java,我有四个变量,在调用函数之前我不会知道,但我需要确定四个变量中哪一个最小。有没有快速的方法可以做到这一点,而不需要很多if-else语句,或者这是唯一的方法?如果有相等的,则需要返回到 int TOP, BOTTOM, LEFT, RIGHT; String MIN; min(TOP, BOTTOM, LEFT, RIGHT) { FOUND MINNUM; return MINSTRING; } 我意识到,如果有多个相等的值,我需要一致地返回相同的相等值,并且如果我

我有四个变量,在调用函数之前我不会知道,但我需要确定四个变量中哪一个最小。有没有快速的方法可以做到这一点,而不需要很多if-else语句,或者这是唯一的方法?如果有相等的,则需要返回到

int TOP, BOTTOM, LEFT, RIGHT;

String MIN;

 min(TOP, BOTTOM, LEFT, RIGHT)
{
     FOUND MINNUM;
     return MINSTRING;
}

我意识到,如果有多个相等的值,我需要一致地返回相同的相等值,并且如果我返回的方向相等的字符串被选择为min,那么我可以检查字符串,而不是整数,以便更精确。

您可以使用嵌套
Math.min
s:

int min(int top, int bottom, int left, int right) {
    return Math.min(Math.min(top, bottom), Math.min(left, right));
}
此外,您还可以介绍更常用的方法:

int min(Integer... nums) {
    if (nums.length == 0)
        throw new IllegalArgumentException("???");
    int res = nums[0];
    for (int i = 1; i < nums.length; ++i)
        res = Math.min(res, nums[i]);
    return res;
}
int最小值(整数…nums){
如果(nums.length==0)
抛出新的IllegalArgumentException(“?”);
int res=nums[0];
对于(int i=1;i
这个怎么样

private int least(Integer... values) {
    return Collections.min(Arrays.asList(values));
}

由于Java 8,您可以而且应该使用以下内容:

int min = IntStream.of(TOP, BOTTOM, LEFT, RIGHT).min().getAsInt();

这使用流,您可以对其进行操作。

将它们放入
集合中
并排序。。。当然,它不会告诉哪个变量是最小值,但哪个是最小值。你必须使用某种形式的比较来做到这一点,或者使用
if else if…
或三次写入,或者使用某种排序方法并取第一个或最后一个索引。.Guava的apply quick sort。4号的最佳方式。您可以使用内置类,如
数学
集合
,等等。但是对于4个变量,没有一个比simple
if/else
产生更好的性能。因此,除非你对每个数字的可能范围有一些了解,否则最简单的方法是使用3个比较运算。不可编译。您需要实际从数组中创建一个集合,但在本例中可能是可以接受的。此外,如果要将现有数组传递给此方法,则此方法是不正确的,但在本例中,此方法可能是正确的。错误的算法解决方案。此外,空数组->NullPointerException、ArrayIndexOutOfBoundsException或其他方法。
int min = IntStream.of(TOP, BOTTOM, LEFT, RIGHT).min().getAsInt();