import java.util.Arrays; //导入,用于排序,可不实用
import java.util.Random; //导包 ,用于产生一个随机数
public class RondanArrays {
public static void main(String[] args) {
Random random = new Random(); //创建一个随机数对象,用于产生一个随机数
int[] arr = new int[10]; //创建一个数组对象,里面有50个元素,注意下标为(0-49]
for (int i = 0; i < arr.length; i++) { //相当于遍历一个数组,用来对元素赋值操作
int a = random.nextInt(11); //产生一个随机数,并保存到 a变量中,注意此随机数产生的范围为[0-10]
if(iscongfu(a, arr, i) != - 1){ //调用方法,如果次方法的返回值不是-1,证明这个随机数没有重复
arr[i] = a; //赋值 将这个随机数存放到数组a[i]中;
}else{
i--; //否则,就将变量i--,注意:如果这个不加上,很有可能出现随机数重复就不对数组赋值,出现多个数组元素为0的情况
}
}
//Arrays.sort(arr); //当对一个大数组进行不重复随机数赋值的时候 ,可以排序,快速查看是否出现重复情况
for (int i = 0; i < arr.length ; i++) { //遍历这个数组,打印输出 测试是否重复
System.out.println(arr[i]);
}
}
public static int iscongfu(int r,int[] s ){ //此方法是判断数组里面的元素是否存在一个整数r
for (int i = 0; i <s.length ; i++) {
if(s[i]==r){
return -1; //存在返值为-1
}
}
return r; //不存在返回值为r
}
public static int iscongfu(int r,int[] s ,int h){ //此方法重载了上述方法,此方法适用于初始化数组的赋值,运行效率较高
for (int i = 0; i <h ; i++) {
if(s[i]==r){
return -1;
}
}
return r;
}
}
java中,如何用随机数赋值给一个数组,并且数组中的元素不能够重复?
最新推荐文章于 2024-05-01 23:48:02 发布