随机数
在Java语言中要想生成随机数首先要导入Random包
随机产生int类型的数字
Random random=new Random();
random.nextInt();
随机产生int类型的数字
取值范围为:[0~100)
Random random=new Random();
random.nextInt(100);
其他基本类型也有,
例:double类型
Random random=new Random();
random.nextDouble();
再来结合例子理解一下吧
// 抽取幸运儿
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class rSampling {
public static void main(String[] args) {
//总人数、抽取人数
int pNum,num;
Scanner scanner=new Scanner(System.in);
System.out.print("总人数:");
pNum=scanner.nextInt();
System.out.print("请输入要抽取的人数:");
num=scanner.nextInt();
System.out.println("请输入姓名:");
pRandom(pNum,num);
}
//抽取
public static void pRandom(int pNum, int num){
//姓名
String name;
Scanner scanner=new Scanner(System.in);
ArrayList<String> aName=new ArrayList<>();
//所有人的姓名
for(int i=0;i<pNum;i++) {
name = scanner.next();
aName.add(name);
}
int index=0;
Random random=new Random();
//存储数字数组
int[] arr=new int[num];
//默认值为0
for(int i=0;i<arr.length;i++){
arr[i]=-1;
}
//循环,生成随机数
while (index<arr.length){
//生成循环数:snum
int snum=random.nextInt(pNum);
if(!contains(arr,snum)){
arr[index++]=snum;
}
}
System.out.println("幸运儿:");
for(int i=0;i<arr.length;i++){
System.out.println(aName.get(arr[i]));
}
}
//判断是否包含某个元素
public static boolean contains(int[] arr,int key){
for(int i=0;i<arr.length;i++){
if(arr[i]==key){
return true;
}
}
return false;
}
}