怎么随机从数组中挑拣出随机数,每个挑出来的数字都不能和别的数字重复,代码怎么写?
用集合写行吗?我的是在20个数字中随机选择10个数,不能重复。
public static void main(String[] args) {
Random r = new Random();
HashSet hs = new HashSet();
for(int x=0;x<10;){
int w=r.nextInt(20)+1;
hs.add(w);
if(hs.size()==10)
break;
}
//第一种
System.out.print(hs);
//第二种
Iterator it = hs.iterator();
while(it.hasNext()){
Object n = it.next();
System.out.print(n+",");
}
}
public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
for(int i =1;i<=10;i++){
//初始化数组{1,2,3,4,5,6,7,8,9,10};
list.add(i);
}
Random random = new Random();
while(list.size()>0){
int i = random.nextInt(list.size());
System.out.println(list.get(i));
//每拿完一个数,就在数组里清楚该数即可 (如果后继还要用到该数组,就先用一个临时数组来存储)
list.remove(i);
}
}
可以利用set集合的不可重复的特点,进行随机数选择