用java写出,3.随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出 时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。 PS:如果有两个数字出现的次数一样,则只需输出其中一个。
时间: 2024-10-19 16:10:10 浏览: 25
Java面试题和答案.pdf
以下是使用Java编写的一个示例程序,它使用TreeMap存储生成的随机整数及其出现次数,并按降序排序:
```java
import java.util.*;
import java.util.concurrent.ThreadLocalRandom;
public class Main {
public static void main(String[] args) {
// 定义范围和数量
int lowerBound = 30;
int upperBound = 35;
int count = 50;
// 使用TreeMap存储键值对,键是数字,值是出现次数
Map<Integer, Integer> frequencyMap = new TreeMap<>(Collections.reverseOrder());
// 随机生成并统计数字出现次数
for (int i = 0; i < count; i++) {
int randomNum = ThreadLocalRandom.current().nextInt(lowerBound, upperBound + 1);
frequencyMap.put(randomNum, frequencyMap.getOrDefault(randomNum, 0) + 1);
}
// 输出结果
System.out.println("数字及其出现次数(降序):");
for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
System.out.println("数字: " + entry.getKey() + ", 出现次数: " + entry.getValue());
}
// 找出出现次数最多的数字及其次数
int maxFrequency = 0;
int mostFrequentNumber = -1;
for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
if (entry.getValue() > maxFrequency) {
maxFrequency = entry.getValue();
mostFrequentNumber = entry.getKey();
}
}
System.out.println("\n出现次数最多的数字: " + mostFrequentNumber + ", 出现次数: " + maxFrequency);
// 如果有多个数字出现次数相同,这里只输出一个,可以根据需求调整
}
}
```
这个程序首先创建了一个`TreeMap`,然后通过循环生成指定范围内的随机数,并更新该数字在map中的计数值。最后遍历map输出所有数字及其出现次数,并找出出现次数最多的数字。
阅读全文