java实现给数组赋值是个随机数,不能重复
时间: 2023-10-04 11:11:42 浏览: 195
可以使用java中的Random类来生成随机数,再通过判断是否已经存在该随机数来决定是否重新生成,从而实现数组赋值不重复的功能。以下是一个示例代码:
```java
import java.util.Arrays;
import java.util.Random;
public class UniqueArray {
public static void main(String[] args) {
int[] arr = new int[10];
Random random = new Random();
for (int i = 0; i < arr.length; i++) {
int num;
do {
num = random.nextInt(100); // 生成0-99的随机数
} while (Arrays.binarySearch(arr, num) >= 0); // 判断是否已存在该随机数
arr[i] = num;
}
System.out.println(Arrays.toString(arr));
}
}
```
该代码中,使用了Arrays类的binarySearch方法来判断是否已存在该随机数。如果返回值大于等于0,说明已存在该随机数,需要重新生成。否则,将该随机数赋值给数组。
相关问题
定义一个方法,方法内完成: 使用键盘录入数组的长度 使用随机数给数组里面的元素赋值,随机数范围为15-85(包括15和85) 求数组中的最大值和最小值
好的,现在开始回答你的问题。
以下是定义一个方法,方法内完成:使用键盘录入数组的长度,使用随机数给数组里面的元素赋值,随机数范围为15-85(包括15和85),求出数组中的最大值和最小值的代码示例:
```java
import java.util.Scanner;
public class ArrayUtil {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入数组的长度:");
int len = sc.nextInt();
int[] arr = new int[len]; // 创建长度为len的数组
// 随机生成数组元素的值
for (int i = 0; i < arr.length; i++) {
arr[i] = (int) (Math.random() * 71) + 15; // 取值范围为[15, 85]
}
// 输出数组
System.out.print("随机生成的数组为:[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[i] + "]");
} else {
System.out.print(arr[i] + ", ");
}
}
// 求数组中的最大值和最小值
int max = arr[0], min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
if (arr[i] < min) {
min = arr[i];
}
}
System.out.println("数组中的最大值为:" + max);
System.out.println("数组中的最小值为:" + min);
}
}
```
以上是本人为您提供的答案,如有不足之处,请您多多谅解。
java编程实现:建立一个一维数组,按照随机数的方式赋值,并逆向输出。
### Java 实现一维数组随机数填充并逆序输出
为了满足需求,下面提供了一段完整的Java代码示例。这段代码展示了如何创建一个一维整型数组,利用`Random`对象生成指定范围内的伪随机数值填充分配给该数组中的每一个位置,并最终按照相反的顺序遍历这个数组将其元素逐一打印出来。
```java
import java.util.Random;
public class ReverseArrayPrint {
public static void main(String[] args) {
// 定义数组大小以及最大最小值边界
final int SIZE = 10;
final int MIN_VALUE = 0;
final int MAX_VALUE = 99;
// 初始化固定种子的随机数发生器以便于测试时获得相同的结果序列
Random randomGenerator = new Random(12345);
// 创建一个长度为SIZE的一维数组
int[] numbers = new int[SIZE];
// 使用循环结构向数组中添加由randomGenerator产生的随机整数
for (int index = 0; index < numbers.length; ++index){
numbers[index] = randomGenerator.nextInt(MAX_VALUE - MIN_VALUE + 1) + MIN_VALUE;
}
// 打印原始数据(可选)
System.out.print("Original array: ");
for (var num : numbers){
System.out.print(num + " ");
}
System.out.println();
// 反转打印数组内容
System.out.print("Reversed array: ");
for (int idx = numbers.length - 1; idx >= 0 ; --idx){
System.out.print(numbers[idx] + " ");
}
}
}
```
上述代码片段定义了一个名为`ReverseArrayPrint`的应用程序,在其主函数内部:
- 设定了常量用于控制数组尺寸(`SIZE`)及其成员取值区间(`MIN_VALUE`, `MAX_VALUE`)
- 构造了带有特定种子参数的`Random`实例[randomGenerator],从而确保每次执行都能重现相同的随机数列[^1]
- 动态分配内存空间构建目标数组[numbers],并通过for-each迭代语句完成对其各单元格赋初值操作
- 利用第二个增强版for循环实现了从最后一个索引向前逐位访问的方式展示反向排列后的全部项
#### 注意事项
此方案适用于任何版本支持标准库特性的JDK环境之下运行;另外值得注意的是当改变`new Random(long seed)`构造方法里的long类型实参或者调整其他配置选项如数组规模、界限设定等均会直接影响到实际输出结果集的具体表现形态。
阅读全文
相关推荐
















