java语言产生0~N不重复的随机数
百度的都是乱西八槽的代码,然后参照别人自己写了一个,不废话上代码。大量数据请勿使用!!!!
/**
* @param count 0~count的随机数
* @param num 随机数的数量
* @return List<Integer>不重复随机数的List集合
*/
public static final List<Integer> randomNumber(int count,int num) {
List<Integer> shu = new ArrayList<Integer>();
int i=0;
if(count>=num-1) {//如果随机数量num大于count时
while(i<num-1){
int k=0;
int a=(int)(Math.random()*count);
if(shu.size()==0) {
shu.add(a);
}else {
for(Integer s:shu) {
if(s.equals(a))
k++;
};
if(k==0) {
shu.add(a);
i++;
};
};
};
}else {//如果随机数量num小于count时
while(i<count-1){
int k=0;
int a=(int)(Math.random()*count);
if(shu.size()==0) {
shu.add(a);
}else {
for(Integer s:shu) {
if(s.equals(a))
k++;
};
if(k==0) {
shu.add(a);
i++;
};
};
};
}
return shu;
}