Java常用类—Random

Random方法概览

在这里插入图片描述
大体上可以分为三类:

  • 返回值类型为:DoubleStream | IntStream | LongStream
  • 返回值类型为:int | long | float | boolean | double
  • 返回值类型为: void

返回值类型为xxxStream

这类返回值类型的方法功能作用是返回一个随机数组成的流。

以doubles()方法举例:

//doubles(long StreamSize),参数表示流的长度
//本例中方法返回三个浮点型随机数
import java.util.Arrays;
import java.util.Random;

public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		System.out.println(Arrays.toString(random.doubles(3).toArray()));
	}
}
// doubles​(long xxx, double xxx, double xxx),第一个参数表示流的长度,第二个表示起始边界,第三个表示终止边界
//本例中方法返回三个在3到5之间的浮点型随机数
import java.util.Arrays;
import java.util.Random;

public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		System.out.println(Arrays.toString(random.doubles(3,3,5).toArray()));
	}
}

返回值类型为基本数据类型

这类方法返回的是一个随机数。

以nextnt()举例:

//本例方法返回一个随机整数
import java.util.Random;
public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		System.out.println(random.nextInt());
	}
}

nextInt方法不同于其他next…方法的地方,他有一个有参覆写

//nextInt(int bound)方法返回一个从0到bound的随机整数
//注意nextInt方法无参时返回的值从负的2的31次方到正的2的31次方-1
import java.util.Random;

public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		System.out.println(random.nextInt(62));
	}
}

nextFloat()和nextDouble()的返回值范围都是0到1,想要0~5的取值范围可以乘5

返回值类型为void

nextBytes(byte[] arr)方法,随机生成若干个随机数存入数组arr中,随机数的个数有数组长度决定。

import java.util.Arrays;
import java.util.Random;

public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		byte[] arr = new byte[5];
		random.nextBytes(arr);
		System.out.println(Arrays.toString(arr));
	}
}

setSeed( long bound)方法设置种子数,种子数的作用,在同一种子数的形况下,随机数每次都相同,可以直接在new的时候设置种子数。

import java.util.Arrays;
import java.util.Random;

public class Demo1 {
	public static void main(String[] args) {
		Random random = new Random();
		random.setSeed(3);
		System.out.println(random.nextInt());
	}
}

实验题

设置一个数组,将大小字母和0~9全放进去。设置一个6位的密码生成器,每位密码从数组随机取得。

import java.util.Random;
import java.util.Scanner;

public class RandomTest {
	public static void main(String[] args) {
		// 定义一个字符型数组
		char[] pardStore = new char[62];
		// 把所有的大写字母放进去 把所有的小写字母放进去 把0到9放进去
        for(int i=0;i<26;i++) {
        	pardStore[i] = (char)(i+65);
        }
        for(int i=26;i<52;i++) {
        	pardStore[i] = (char)(i+71);
        }
        for(int i=0;i<10;i++) {
        	pardStore[i+52] = (char)(i+48);
        }
        Random q = new Random();
        for(int i=0;i<6;i++){
            int n = q.nextInt(62);
            System.out.print(pardStore[n]);
        }
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_44078014/article/details/106787419