java利用随机函数产生由数值范围为1-20的500个整数构成的流,统计每个数值的出现个数,求所有元素的平均值
时间: 2024-02-13 15:06:52 浏览: 61
java随机生成50个数字并统计出现次数
5星 · 资源好评率100%
以下是Java实现,利用随机函数产生由数值范围为1-20的500个整数构成的流,统计每个数值的出现个数,求所有元素的平均值:
```java
import java.util.Arrays;
import java.util.Map;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
public class Main {
public static void main(String[] args) {
Random random = new Random();
int[] arr = random.ints(500, 1, 21).toArray();
Map<Integer, Long> countMap = Arrays.stream(arr)
.boxed()
.collect(Collectors.groupingBy(e -> e, Collectors.counting()));
System.out.println("元素出现次数:" + countMap);
double average = Arrays.stream(arr).average().orElse(Double.NaN);
System.out.println("元素平均值:" + average);
}
}
```
首先,使用`Random`类生成随机数流,`random.ints(500, 1, 21)`表示生成500个在1到20之间(包含1和20)的随机整数。然后将随机数流转换为数组,方便后续处理。
接下来,使用`Arrays.stream`方法将整数数组转换成流,然后使用`boxed`方法将`int`类型的流转换为`Integer`类型的流,从而可以使用`groupingBy`方法按照元素值进行分组,并统计每个元素值出现的次数。
最后,使用`average`方法计算所有元素的平均值。如果数组为空,`average`方法将返回`Double.NaN`。
阅读全文