如下图所示,完成对应的双色球摇奖功能:
要求:随机摇出1-33之间的7个随机数,不能重复
由于双色球是依次摇号,号码有顺序,而set集合不能保证顺序,所以第一种利用Set集合的方法是错误的
第一种方法利用Set集合元素的不可重复性;
import java.util.Random;
import java.util.HashSet;
public class day69demo1{
public static void main(String[] args){
HashSet<Integer> set=new HashSet<Integer>();
Random random=new Random();
System.out.println("中奖号码为:");
while(set.size()<7){
set.add(random.nextInt(33)+1);
}
for(int el:set){
System.out.println(el);
}
}
}
第二种方法:使用ArrayList存储双色球号码
说明:由于ArrayList集合支持存储相同元素,所以每次往集合中储存双色球号码之前,都要对集合进行遍历。
import java.util.Random;
import java.util.ArrayList;
public class day69demo1{
public static void main(String[] args){
ArrayList<Integer> arr=new ArrayList<Integer>();
Random random=new Random();
System.out.println("中奖号码为:");
while(arr.size()<7){
int randomEl=random.nextInt(33)+1;
for(int el:arr){
if(el==randomEl){
arr.remove(el);
}
}
arr.add(randomEl);
}
for(int el:arr){
System.out.println(el);
}
}
}