我想使用 varags 方法來獲取各種整數的輸入,并找出其中的最大值和最小值。
public class MINMAX {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
Maximum(a,b,c);
Minimum(a,b,c);
}
static void Maximum(int ...v) {
int max = Math.max(a,Math.max(b,c));
System.out.println("The Largest no. is: " max);
}
static void Minimum(int ...v) {
int min = Math.min(a,Math.min(b,c));
System.out.println("The Smallest no. is: " min);
}
}
在這里,我從用戶那里輸入 a、b、c 來找出最大值和最小值。但想知道如何針對 Varargs 方法中的特定元素。
uj5u.com熱心網友回復:
Math.min首先,想象一下如果您有 10 個輸入而不是 3 個輸入,您需要多少個。
您需要的是一種可以接受不同數量輸入的方法(這就是我們有可變引數的原因),因此當您想要支持更多輸入時無需更改任何內容。因此,您需要處理可變引數(可以被視為陣列)而不是特定元素。
此外,通過使用IntStream#summaryStatistics,您可以一次獲得最小值和最大值。
static void maximumAndMaximum(int... v) {
IntSummaryStatistics statistics = IntStream.of(v).summaryStatistics();
System.out.println("The Smallest no. is: " statistics.getMin());
System.out.println("The Largest no. is: " statistics.getMax());
}
uj5u.com熱心網友回復:
您可以將其作為方法引數中給出的 int 原始型別陣列進行訪問。例如
static void Maximum(int ...v) {
int max = Math.max(v[0],Math.max(v[1],v[2]));
System.out.println("The Largest no. is: " max);
}
static void Minimum(int ...v) {
int min = Math.min(v[0],Math.min(v[1],v[2]));
System.out.println("The Smallest no. is: " min);
}
我建議您養成在開始該程序之前檢查目錄大小和其他控制元件的習慣。
uj5u.com熱心網友回復:
可變引數語法 ( ... parameterName) 只是另一種說法,引數是一個陣列,不是嗎?該類java.util.Collections具有您可能會發現有用的方法。我懷疑您可能需要將陣列轉換為實作Collection介面以使用它們的東西(例如java.util.ArrayList)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/474867.html
下一篇:有人可以解釋x如何傳遞給函式f
