首页 > java > faq > 5.Java随机数Random类

5.Java随机数Random类

随机数Random类是在做随机规则时需要用到的类。用途很广,比如随机抽奖,随机密码,随机验证码,随机奖励等,随机数,计算概率等。

1 随机生成一个整数

Random random = new Random();
/** 随机产生一个整数,包括正负数*/
for (int i = 0; i < 100; i++) {
    int r = random.nextInt();
    System.out.println(r);
}

输出结果

...
...
-652449732
-394876378
-608984380
2017359929
1203463897
606478979
...
...

2 随机生成一定范围内的整数

Random提供的nextInt方法,可生成一个大于等于0 小于指定值的随机数。

/** 随机产生一个正整数,大于等于0 小于指定值*/
for (int i = 0; i < 100; i++) {
    int r = random.nextInt(100);
    System.out.println(r);
}

如果要生成一个范围值比如,100~200之间随机,采用100加上0到100的随机值就能实现。

for (int i = 0; i < 100; i++) {
    int r = 100 + random.nextInt(100);
    System.out.println(r);
}

3 随机从数组中取一个值

原理是通过nextInt生成一个随机的索引,然后从数组中获取指定的索引。

/** 随机从数组中取一个值*/

/** 初始化数组*/
int[] arr = new int[100];
for (int i = 0; i < arr.length; i++) {
    arr[i] = i + 1000;
}

/** 随机索引*/
int index = random.nextInt(arr.length);
/** 随机值*/
int randomValue = arr[index];
System.out.println(" randomValue " + randomValue);

4 随机生成不重复的值

随机生成指定个数和范围不重复的值,最简单的方法是随机生成一个值,放入HashSet中,利用Set自带的去重功能,实现去重。数量不到就一直随机值,并且放入HashSet,直到数量满足条件。

/** 随机生成指定个数不重复的值*/
HashSet<Integer> set = new HashSet<>();
while (set.size() < 10) {
    set.add(random.nextInt(100));
}

for (Integer i : set) {
    System.out.println("i " + i);
}

输出结果:

i 33
i 1
i 50
i 20
i 42
i 58
i 12
i 61
i 30
i 15
转载请保留原文链接.