如果只是20个的话,有个很简单的办法。
你定义一个Set集合,把每次产生的0-100的随机数放入Set集合中,直到set.size()=20。
原理:利用Set集合如果放入重复的数时,后来的数会顶替掉前面的数。
代码很简单,还用贴么
追问并不太懂程序(汗颜)
能不用set就只用for语句和数组么?
真心听不懂程序课了
追答先把无脑Set的方法给你贴一下吧,只用for的我再给你写一下....其实都很简单
public class NoRepeat {
public int[] getArray(int len){ //len为需要产生的不重复随机数个数
Set<Integer> set = new HashSet<Integer>();
Random random = new Random();
int[] array = new int[len];
int num = 0;
for(;true;){
num = random.nextInt(100);
set.add(num);
if(set.size()>=20){
break;
}
}
int i=0;
for(int a : set){
array[i] = a;
i++;
}
return array;
}
public static void main(String[] args) {
NoRepeat n = new NoRepeat();
int[] array = n.getArray(20);
System.out.println(array.length);
for(int a : array){
System.out.print(a+" ");
}
}
}
追问哇谢谢~求只用for(恳求脸)
PS:怎么学好程序啊……还有几周就考试了可我什么都不会啊TAT
追答也是醉了。。。提交了半天发现字数超出限制 我给你放文件里,你下载吧
想学好程序多学思想就可以了
追问嗯嗯谢谢啦