给定 n 个正整数,编写一个实验程序找出它们中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。用Java语言实现
时间: 2024-10-15 20:19:48 浏览: 52
在Java中,我们可以使用HashMap来记录每个数出现的次数,并同时维护一个最小值和其对应的计数。这里是一个简单的步骤描述和代码实现:
1. 首先创建一个HashMap存储元素及其出现次数。
2. 遍历给定的数组,对于每一个元素,检查它是否已经在HashMap中。如果在,增加计数;如果没有,添加到HashMap并设置计数为1。
3. 初始化两个变量,一个是当前最大计数,另一个是最小的出现次数最多的数(初始时设为第一个元素)。
4. 再次遍历HashMap,更新最大计数和最小的出现次数最多的数。
5. 最后,在HashMap中找到最大计数的键,即出现次数最多的数,如果这个数小于当前最小值,就更新最小值。
以下是Java代码示例:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 2, 4, 2, 5, 6, 2, 7}; // 示例输入
findMostFrequentMin(numbers);
}
public static int findMostFrequentMin(int[] nums) {
Map<Integer, Integer> countMap = new HashMap<>();
for (int num : nums) {
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
int maxCount = 0, minMaxNum = nums[0];
for (Map.Entry<Integer, Integer> entry : countMap.entrySet()) {
if (entry.getValue() > maxCount) {
maxCount = entry.getValue();
minMaxNum = Math.min(minMaxNum, entry.getKey());
}
}
return minMaxNum;
}
}
```
阅读全文