貌似这个前几天我刚遇到代码如下:package test;import java.util.ArrayList; import java.util.List; import java.util.Random;public class DoubleBalls { public static void main(String[] args) { String[] balls=new String[]{"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19", "20","21","22","23","24","25","26","27","28",}; boolean[] used=new boolean[balls.length]; List<String> picked=new ArrayList<String>(); Random ra=new Random(); int n=7;//这里是要取的个数 while(true){ int a=ra.nextInt(balls.length); if(used[a]) continue; else{ picked.add(balls[a]); used[a]=true; } if(picked.size()==n) break; } System.out.println(picked); }}
终于做出来了,谢谢各位! public static String[] gen(){ String[] pool = {"01","02","03","04","05","06","07", "08","09","10","11","12","13","14","15","16", "17","18","19","20","21","22","23","24","25", "26","27","28","29","30","31","32","33"}; boolean[] used = new boolean[pool.length];//使用标记 Random r = new Random(); String[] balls = new String[6];//空白数组 int i = 0; while(true){ int index = r.nextInt(pool.length);//随机下标 if(used[index])//检查下标是否使用过 continue;//重新执行循环, 生成新的随机数 balls[i++]=pool[index];//取出一个球到 balls 数组 used[index]=true;//标识使用了 if(i==balls.length)//检查是否都取满了 break; }
import java.util.List;
import java.util.Random;public class DoubleBalls {
public static void main(String[] args) {
String[] balls=new String[]{"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19",
"20","21","22","23","24","25","26","27","28",};
boolean[] used=new boolean[balls.length];
List<String> picked=new ArrayList<String>();
Random ra=new Random();
int n=7;//这里是要取的个数
while(true){
int a=ra.nextInt(balls.length);
if(used[a])
continue;
else{
picked.add(balls[a]);
used[a]=true;
}
if(picked.size()==n)
break;
}
System.out.println(picked);
}}
public static String[] gen(){
String[] pool = {"01","02","03","04","05","06","07",
"08","09","10","11","12","13","14","15","16",
"17","18","19","20","21","22","23","24","25",
"26","27","28","29","30","31","32","33"};
boolean[] used = new boolean[pool.length];//使用标记
Random r = new Random();
String[] balls = new String[6];//空白数组
int i = 0;
while(true){
int index = r.nextInt(pool.length);//随机下标
if(used[index])//检查下标是否使用过
continue;//重新执行循环, 生成新的随机数
balls[i++]=pool[index];//取出一个球到 balls 数组
used[index]=true;//标识使用了
if(i==balls.length)//检查是否都取满了
break;
}