一、Random类的认识
Random是随机的意思 。
Random类是java.until下的一个根据随机算法的起源数字进行一些变化,从而得到随机数字的方法。
随机算法的起源数字被成为种子数(seed)。
虽然Random类产生的数字是随机的,但在相同种子数(seed)下的相同次数产生的随机数是相同的(伪随机)。
二、Random对象的生成
Random中共有两种构造方法
1、public Random()
此构造方法是以系统自身的时间为种子数来构造Random对象。
2、public Random(long seed)
此构造方法可以自己来选定具体的种子来构造Random对象。
三、Random类的简单使用
package cn.itcast.demo1;
import java.util.Random;//使用时需要先导包
import java.util.Scanner;
public class RAndom {
public static void main(String[] args) {
Random r = new Random();//以系统自身时间为种子数
int i = r.nextInt();
System.out.println("i"+i);
Scanner sc =new Scanner(System.in);
int j = sc.nextInt();
Random r2 = new Random(j);//自定义种子数
Random r3 = new Random(j);//这里是为了验证上方的注意事项:Random类是伪随机,相同种子数相同次数产生的随机数相同
int num = r2.nextInt();
int num2 = r3.nextInt();
System.out.println("num"+num);
System.out.println("num2"+num2);
}
}
输出
i194711934
2
num-1154715079
num2-1154715079
四、常用方法
random.nextInt() | 返回值为整数,范围是int类型范围 |
random.nextLong() | 返回值为长整型,范围是long类型的范围 |
random.nextFloat() | 返回值为小数,范围是[0,0.1] |
random.nextDouble() | 返回值为小数,范围是[0,0.1] |
random.nextBoolean() | 返回值为boolean值,true和false概率相同 |
radom.nextGaussian() | 返回值为呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0 |
五、简单应用
需求:设计一个密码生成器,可以随机生成4位数字字母(包括大小写)混合的动态密码。
分析:先找一个字符数组pardStore将大小写字母和数字都放进去(数组长度为62),用一个Random随机一个数来随机每个密码
代码演示:
package cn.itcast.demo1;
import java.util.Random;
import java.util.Scanner;
public class RAndom {
public static void main(String[] args) {
char [] pardStore = new char[62];
for (int i = 0; i <26 ; i++) {
pardStore [i] = (char)('A'+i);
}
for (int i = 26; i <52 ; i++) {
pardStore [i] = (char)('a'+(i-26));
}
for (int i = 52; i <62 ; i++) {
pardStore [i] = (char)('a'+(i-52));
}
Scanner sc = new Scanner(System.in);
int seed = sc.nextInt();
Random r = new Random(seed);
for (int i = 0; i < 4; i++) {
int n = r.nextInt(62);
System.out.print(pardStore[n]);
}
}
}
今天的文章JAVA常用类 ——Random类分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28261.html