簡體   English   中英

在Java中返回整數參數的最大值

[英]Returning max value of integer parameters in java

我想知道java中是否有一種方法將您的變量作為參數並返回最大整數值,或者我是否應該為此編寫自己的方法。 在我的程序中,我有4個不同的整數,每次調用該方法時都會更改,並且都存儲在井字游戲中的不同變量(rightDiag,leftDiag,hor和vert)中,最后我必須確定哪個變量具有最高價值。 是否有任何方法可以將這些變量用作參數並返回所有四個中的最高整數? (或類似的說法)還是我應該編寫自己的“最大”方法?

感謝大家!

Math.max()適用於2個參數。 它是這樣實現的:

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

希望這對您自己的實現有足夠的啟發。

如果您准備使用Java 8:

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

但是Java 7中沒有這樣的東西。

Math.max僅接受兩個參數,但您可以重復使用它:

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

或者,如果您想花哨的話,可以編寫一個采用可變數量參數的方法:

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

並且代碼會將parameters視為int[]數組,您可以遍歷該數組並找到最大的數組。

有很多方法可以實現這種方法。 如果您不想使用大量的if語句來確定哪個值是最高的,則可以將所有值存儲在數組中,遍歷數組並保持指向數組中最大值的指針,然后返回最后的價值。

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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM