如何从java中的数组中打印多个最大值[重复]
Posted
技术标签:
【中文标题】如何从java中的数组中打印多个最大值[重复]【英文标题】:how to print multiple max values from an array in java [duplicate] 【发布时间】:2017-12-08 04:03:31 【问题描述】:我刚开始用 java 编程,我正在尝试一些东西。我编写了一些代码来创建我自己的带有 x 索引的数组,我可以在程序运行时填写这些索引。因此,如果我运行程序,我可以说 x = 5,我将有 5 个索引要填写(例如 5、2、7、4 和 7)。然后程序会找到最大值并打印出来。然后我想知道是否可以让我的程序打印我的 maxValue 在数组中的次数。在上面的示例中,它将是两个。我只是似乎无法找到如何做到这一点。
这是我目前的代码:
import java.util.*;
public class oefeningen
static void maxValue(int[] newArray)//this method decides the largest number in the array
int result = newArray[0];
for (int i=1; i<newArray.length; i++)
if (newArray[i] > result)
result = newArray[i];
System.out.println("The largest number is: " +result);
public static void main(String[] args)
Scanner keyboard = new Scanner(System.in);
int x; //this is the main part of the array
System.out.println("Please enter size of array:");
x = keyboard.nextInt();
int[] newArray = new int[x];
for (int j=1; j<=x; j++)//this bit is used for manually entering numbers in the array
System.out.println("Please enter next value:");
newArray[j-1] = keyboard.nextInt();
maxValue(newArray);
【问题讨论】:
添加一个计数器变量,当您使用newArray[i] == result
时增加该变量并在您将结果更改为其他值时重置为 1。
添加一个计数器并在每次找到等于当前最大值的元素时将其递增。每次当前最大值更改时将其重置为 1。你应该能够自己解决这个问题
不确定这是如何与另一个问题重复的......似乎这个问题是在问“如何计算等于最大值的项目数?” - 链接的问题与计数元素没有任何关系...
【参考方案1】:
您可以在您的 maxValue 函数中进行跟踪,并在每次发现新的最大值时重置计数器。像这样的:
static void maxValue(int[] newArray)//this method decides the largest number in the array
int count = 0;
int result = newArray[0];
for (int i=1; i<newArray.length; i++)
if (newArray[i] > result)
result = newArray[i];
// reset the count
count = 1;
// Check for a value equal to the current max
else if (newArray[i] == result)
// increment the count when you find another match of the current max
count++;
System.out.println("The largest number is: " +result);
System.out.println("The largest number appears " + count + " times in the array");
【讨论】:
【参考方案2】:只需传递数组和任何值来计算它在数组中出现的次数
public int checkAmountOfValuesInArray(int[] array, int val)
int count = 0;
for (int i = 0; i < array.length; i++)
if (array[i]==val) count++;
return count;
或者如果您想在一个循环中完成所有操作:
static void maxValue(int[] newArray) //this method decides the largest number in the array
int result = newArray[0];
int count = 1;
for (int i = 1; i < newArray.length; i++)
if (newArray[i] > result)
result = newArray[i];
count = 1;
else if (newArray[i] == result)
count++;
System.out.println("The largest number is: " + result+ ", repeated: " + count + " times");
【讨论】:
以上是关于如何从java中的数组中打印多个最大值[重复]的主要内容,如果未能解决你的问题,请参考以下文章