java 输入两个整数,其中第一个数代表数组长度,第二个数代表随机数种子; 创建数组并添加随机数(随机数介于 0-19 之间); 输出随机数出现的次数(出现次数大于 0 才输出); 按随机数从小到大排序输出。
时间: 2024-09-18 12:17:17 浏览: 43
在 Java 中,你可以使用 `Random` 类来生成指定范围内的随机数,并结合数组和循环来完成这个任务。以下是具体的步骤:
1. 首先,获取用户输入的数组长度和随机数种子,例如:
```java
Scanner scanner = new Scanner(System.in);
System.out.print("请输入数组长度:");
int length = scanner.nextInt();
System.out.print("请输入随机数种子(建议设置固定的值,如 System.currentTimeMillis()):");
long seed = scanner.nextLong(); // 使用当前时间作为默认值,也可以手动输入
```
2. 创建一个大小为输入长度的整数数组,并用 `Random` 类生成随机数:
```java
int[] numbers = new int[length];
Random random = new Random(seed);
for (int i = 0; i < length; i++) {
numbers[i] = random.nextInt(20); // 生成0到19之间的随机整数
}
```
3. 计算每个随机数出现的次数,可以使用哈希表(HashMap)存储计数:
```java
Map<Integer, Integer> countMap = new HashMap<>();
for (int number : numbers) {
countMap.put(number, countMap.getOrDefault(number, 0) + 1);
}
```
4. 输出出现次数大于0的随机数及其出现次数:
```java
countMap.entrySet().stream()
.filter(entry -> entry.getValue() > 0)
.forEach(entry -> System.out.println("数字 " + entry.getKey() + " 出现了 " + entry.getValue() + " 次"));
```
5. 对数组进行排序(这里假设你想要按照自然顺序排序):
```java
Arrays.sort(numbers);
```
6. 最后,遍历已排序的数组输出:
```java
System.out.println("按升序排列后的数组:");
for (int num : numbers) {
System.out.print(num + " ");
}
```
阅读全文