[英]How to target the elements of the Varargs method in Java inside the function?
我想使用 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 方法中的特定元素。
首先,想象一下如果您有 10 個輸入而不是 3 個輸入,您需要多少Math.min
。
您需要的是一種可以接受不同數量輸入的方法(這就是我們有可變參數的原因),因此當您想要支持更多輸入時無需更改任何內容。 因此,您需要處理可變參數(可以被視為數組)而不是特定元素。
此外,通過使用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());
}
可變參數語法 ( ... parameterName
) 只是另一種說法,參數是一個數組,不是嗎? java.util.Collections
類具有您可能會發現有用的方法。 我懷疑您可能需要將數組轉換為實現Collection
接口的東西才能使用它們(例如java.util.ArrayList
)。
您可以將其作為方法參數中給出的 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);
}
我建議您養成在開始該過程之前檢查目錄大小和其他控件的習慣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.