需求:直播抽奖活动,分别有【2,588,888,1000,10000】五个奖金,模拟抽奖。打印每个奖项,奖项的出现顺序随机但不重复。
package demo;
import java.util.Random;
/*
* 案例;抢红包
* 需求:直播抽奖活动,分别有【2,588,888,1000,10000】五个奖金,模拟抽奖。打印每个奖项,奖项的出现顺序随机但不重复
*
* */
public class RobRedPack {
public static void main(String[] args) {
//1.定义数组表示所有的奖项
int [] arr = {2,588,888,1000,10000};
//2.定义新数组保存抽取的结果
int [] newarr = new int[arr.length];
Random r = new Random();
for (int i = 0; i < arr.length; ) {
int randomIndex = r.nextInt(arr.length);
int price = arr[randomIndex];
boolean flag = contains(newarr,price);
if(!flag){
//把当前抽取到的奖项放入newarr当中
newarr[i] = price;
i++;
}
}
for (int j = 0; j < arr.length; j++) {
System.out.println(newarr[j]);
}
}
//抽奖的过程
/*
* 用来判断price新数组当中是否存在
* 存在返回true,不存在返回false
* */
public static boolean contains(int [] arr,int price){
for (int i = 0; i < arr.length; i++) {
if(arr[i] == price){
return true;
}
}
return false;
}
}
运行结果: