如何在函数内部定位 Java 中 Varargs 方法的元素?
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 方法中定位特定元素。
可变参数语法 (... parameterName
) 只是参数是数组的另一种说法,不是吗? java.util.Collections
class 中包含您可能会觉得有用的方法。我怀疑您可能需要将数组转换为实现 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);
}
我建议您在开始该过程之前养成检查目录和其他控件大小的习惯。
首先,想象一下如果您有 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());
}
我想用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 方法中定位特定元素。
可变参数语法 (... parameterName
) 只是参数是数组的另一种说法,不是吗? java.util.Collections
class 中包含您可能会觉得有用的方法。我怀疑您可能需要将数组转换为实现 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);
}
我建议您在开始该过程之前养成检查目录和其他控件大小的习惯。
首先,想象一下如果您有 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());
}