用java实现,接受一个整型数组,找到数组中出现次数最多的两个元素,并打印出来
时间: 2024-10-17 16:10:44 浏览: 20
使用java实现的经典的数组的冒泡排序
在Java中,可以使用HashMap来统计每个元素的出现次数,然后遍历HashMap找到出现次数最多的两个元素。这里是一个简单的示例:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 2, 2, 3, 1, 1}; // 示例数组
// 使用HashMap存储每个元素及其出现次数
Map<Integer, Integer> frequencyMap = new HashMap<>();
for (int num : array) {
frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);
}
// 找到出现次数最多的两个元素
int maxCount = 0;
int secondMaxCount = 0;
int firstElement = -1, secondElement = -1;
for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
if (entry.getValue() > maxCount) {
secondMaxCount = maxCount;
secondElement = firstElement;
maxCount = entry.getValue();
firstElement = entry.getKey();
} else if (entry.getValue() > secondMaxCount && entry.getValue() < maxCount) {
secondElement = entry.getKey();
}
}
// 如果有两个相同的最大值,则第二个元素可能是第一个的最大值之后的一个
if (secondElement == -1 || frequencyMap.get(firstElement) == frequencyMap.get(secondElement)) {
secondElement = null; // 或者设置为某个特定值,如Integer.MIN_VALUE表示未知
}
// 打印结果
System.out.println("出现次数最多的元素是:" + firstElement);
if (secondElement != null) {
System.out.println("其次出现最多的是:" + secondElement);
} else {
System.out.println("只有一个出现次数最多的元素");
}
}
}
```
阅读全文