Java 从2个阵列中的每个阵列中获取最大的数目
在我对Java的自学中,我试图从两个数组中的每一个数组中获得最大的数目 我不知道为什么要执行以下输出:Java 从2个阵列中的每个阵列中获取最大的数目,java,Java,在我对Java的自学中,我试图从两个数组中的每一个数组中获得最大的数目 我不知道为什么要执行以下输出: Largest: 3 Largest: 8 Largest: 9 Largest: 23 Largest: 33 Largest: 41 Largest: 51 正确的输出应为: Largest: 23 Largest: 51 下面的代码如何获得最大的数字?因为getLargest1[i]>最大 等于getLargest1[i]>0,其中最大值=0 为什么最大的=getLargest1[i
Largest: 3
Largest: 8
Largest: 9
Largest: 23
Largest: 33
Largest: 41
Largest: 51
正确的输出应为:
Largest: 23
Largest: 51
下面的代码如何获得最大的数字?因为getLargest1[i]>最大
等于getLargest1[i]>0,其中最大值=0
为什么最大的=getLargest1[i]
你必须搬家
System.out.println("Largest: " + largest);
for循环之外的语句。比如:
for (int i = 0; i < getLargest2.length; i++)
{
if (getLargest2[i] > largest)
{
largest = getLargest2[i];
}
}
System.out.println("Largest: " + largest);
当然,最大的变量必须在第一次循环后重置。您也可以这样做
int[] getLargest1 = {3, 8, 4, 9, 5, 5, 23, 14};
int[] getLargest2 = {33, 23, 41, 9, 17, 51, 23, 45};
Arrays.sort(getLargest1);
Arrays.sort(getLargest2);
System.out.println("Largest values " + getLargest1[getLargest1.length-1]
+" and "+getLargest2[getLargest2.length-1]);
输出:
Largest values 23 and 51
您在错误的位置打印,您应该在循环外打印:
for (int i = 0; i < getLargest1.length; i++)
{
if (getLargest1[i] > largest)
{
largest = getLargest1[i];
}
}
System.out.println("Largest: " + largest);
largest = 0;
for (int i = 0; i < getLargest2.length; i++)
{
if (getLargest2[i] > largest)
{
largest = getLargest2[i];
}
}
System.out.println("Largest: " + largest);
我认为您只需要将系统println置于循环操作之外。还有一种方法是-ArrayUtils org.apache.commons.lang3.ArrayUtils和Collections
int[] getLargest1 = {3, 8, 4, 9, 5, 5, 23, 14};
int[] getLargest2 = {33, 23, 41, 9, 17, 51, 23, 45};
List a = Arrays.asList(ArrayUtils.toObject(getLargest1));
System.out.println("Largest :"+Collections.max(a));
List b = Arrays.asList(ArrayUtils.toObject(getLargest2));
System.out.println("Largest :"+Collections.max(b));
尝试未经测试:
final int largest1 = IntStream.of(getLargest1).max().getAsInt();
final int largest2 = IntStream.of(getLargest2).max().getAsInt();
return largest1 >= largest2 ? largest1 : largest2;
将打印stmt移到for循环之外。将每个打印语句移到for循环之后,并在第一个for循环之后将最大变量重置为0loop@BackSlash或者每个arraycall System.out.PrintLnMaximum+for循环后的第一个元素。在每次if条件为True时调用ti只会打印出最大的变量谢谢,@backslax。补充说:最大的也需要重置。它提供[I@5483cd没有ArrayUtils.toObjectarr而不是23
for (int i = 0; i < getLargest1.length; i++)
{
if (getLargest1[i] > largest)
{
largest = getLargest1[i];
}
}
System.out.println("Largest: " + largest);
largest = 0;
for (int i = 0; i < getLargest2.length; i++)
{
if (getLargest2[i] > largest)
{
largest = getLargest2[i];
}
}
System.out.println("Largest: " + largest);
int[] getLargest1 = {3, 8, 4, 9, 5, 5, 23, 14};
int[] getLargest2 = {33, 23, 41, 9, 17, 51, 23, 45};
List a = Arrays.asList(ArrayUtils.toObject(getLargest1));
System.out.println("Largest :"+Collections.max(a));
List b = Arrays.asList(ArrayUtils.toObject(getLargest2));
System.out.println("Largest :"+Collections.max(b));
final int largest1 = IntStream.of(getLargest1).max().getAsInt();
final int largest2 = IntStream.of(getLargest2).max().getAsInt();
return largest1 >= largest2 ? largest1 : largest2;