我正在尝试将多个数字放入最小和最大方法中。我知道在最小和最大方法中仅允许使用两种方法。但是,我有两个以上的数字,我不知道自己在做什么。
此代码也在reply.it上:
int age5 = 75;
int age6 = 62;
int age7 = 89;
int age8 = 90;
int age9 = 101;
int youngestAge = Math.min()
int oldestAge = Math.max()
答案 0 :(得分:2)
您可以使用循环
int[] age = {75, 62, 89, 90, 101};
int youngestAge = age[0];
int oldestAge = age[0];
for(int i = 1; i < age.length; i++) {
youngestAge = Math.min(youngestAge, age[i]);
oldestAge = Math.max(oldestAge, age[i]);
}
System.out.println(youngestAge+ " " + oldestAge);
答案 1 :(得分:0)
Varargs是一项允许方法接收N个参数的功能。因此,您可以使用它编写一种方法,该方法可以接收不确定数量的年龄并返回较小的年龄:
public int smallerNumber(int... numbers) {
int smallerNumber = 0;
int previousVerified = numbers[0];
for(int i = 1; i < numbers.length; i++) {
smallerNumber = Math.min(numbers[i], numbers[i-1]);
if(previousVerified <= smallerNumber)
smallerNumber = previousVerified;
else
previousVerified = smallerNumber;
}
return smallerNumber;
}
致电:
smallerNumber(65, 654, 7, 3, 77, 2, 34, 6, 8);
返回以下内容:2
。
答案 2 :(得分:0)
使用JDK 8+,您可以使用流
public static void main(String [] args) {
int min = IntStream.of(75, 62, 89, 90, 101).min().getAsInt();
int max = IntStream.of(75, 62, 89, 90, 101).max().getAsInt();
}
另一个带有摘要统计信息的示例
public static void main(String [] args) {
final IntSummaryStatistics s = IntStream.of(75, 62, 89, 90, 101).summaryStatistics();
System.out.println(s.getMin());
System.out.println(s.getMax());
}