JAVA常用类 ——Random类

一、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)