java利用随机函数产生数值范围在1~20之间的500个整数构成的流。对该流进行如下处理:①统计每个数值的出现次数;②求所有元素的平均值。
时间: 2024-02-27 18:57:20 浏览: 75
好的,针对您的问题,我可以给出以下Java代码进行处理:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Random;
public class Main {
public static void main(String[] args) {
int n = 500; // 数字个数
int min = 1; // 最小值
int max = 20; // 最大值
int[] nums = new int[n]; // 存储随机数的数组
Random rand = new Random(); // 随机数生成器
// 生成随机数
for (int i = 0; i < n; i++) {
nums[i] = rand.nextInt(max - min + 1) + min;
}
// 统计每个数值的出现次数
Map<Integer, Integer> countMap = new HashMap<>();
for (int num : nums) {
countMap.put(num, countMap.getOrDefault(num, 0) + 1);
}
// 输出每个数值的出现次数
for (int i = min; i <= max; i++) {
System.out.println(i + ": " + countMap.getOrDefault(i, 0));
}
// 求所有元素的平均值
int sum = 0;
for (int num : nums) {
sum += num;
}
double avg = (double) sum / n;
System.out.println("平均值为:" + avg);
}
}
```
该代码中使用了一个 HashMap 来统计每个数值的出现次数,具体而言,对于每一个随机数,我们将其作为键,值为其出现的次数,如果该数已经出现过,则将其对应的值加1,否则将其值初始化为1。
对于求所有元素的平均值,我们可以遍历随机数数组,将所有数值累加起来,然后除以数字个数即可得到平均值。
阅读全文