解法1——常规(笨)解法
import java.util.Scanner;
import java.util.Random;
public class test
{
public static void main(String[] args) {
int[] arr={2,588,888,1000,10000};
int[] newarr=new int[arr.length];
Random random=new Random();
for (int i = 0; i < arr.length;) {
int num= random.nextInt(arr.length);
int flog=0;
for (int j = 0; j < newarr.length;j++) {
if(newarr[j]==arr[num])
{
flog=1;
}
}
if(flog==0)
{
newarr[i]=arr[num];
i++;
}
}
for (int i = 0; i < newarr.length; i++) {
System.out.println(newarr[i]+"元的奖金被抽出");
}
}
}
解法2——用方法(异曲同工)
import java.util.Scanner;
import java.util.Random;
public class test
{
public static void main(String[] args) {
int[] arr={2,588,888,1000,10000};
int[] newarr=new int[arr.length];
Random random=new Random();
for (int i = 0; i < arr.length;) {
int num= random.nextInt(arr.length);
if(!contains(newarr,arr[num]))
{
newarr[i]=arr[num];
i++;
}
}
for (int i = 0; i < newarr.length; i++) {
System.out.println(newarr[i]+"元的奖金被抽出");
}
}
public static boolean contains(int[] arr,int num1)
{
for (int i = 0; i < arr.length; i++) {
if(arr[i]==num1)
{
return true;
}
}
return false;
}
}
解法3——打乱奖池(原数组打乱)
//最佳解法
import java.util.Scanner;
import java.util.Random;
public class test
{
public static void main(String[] args) {
int[] arr={2,588,888,1000,10000};
Random random=new Random();
for (int i = 0; i < arr.length; i++) {
int num= random.nextInt(arr.length);
int temp=arr[i];
arr[i]=arr[num];
arr[num]=temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+"元的奖金被抽出");
}
}
}