JAVA如何在生成随机数中不包含某个数字? 例如:Random random=new Random();array[i]=random.nextInt(50);生成随机数中要求不包含16.25.33等多个数字?谢谢!
我好好学一下你的方法,谢谢你,还有就是怎么实现生成随机数中没有重复的数字呢?可别又是用for循环遍历吧?
追答这个也简单,你只要在这个方法的基础上,让每次传进去的ExceptNums都增加你生成的数字,不就好了。要去掉for循环的话,可以换一个数据结构。不用数组,用集合,Set。代码如下:
public int getRandomExcept(int RandMax,Set ExceptNums){
Random rand=new Random();
while(true){
int num=rand.nextInt(RandMax);
if(ExceptNums.contains(num)){
continue;
} else{
return num;
}
}
}
public int getRandomNorepit(int RandMax,Set RepitNums){
int num=this.getRandomExcept(RandMax, RepitNums);
RepitNums.add(num);
return num;
}
我学JAVA刚刚一个月,现在也就会编一些基本的单线程小程序,还经常遇到问题,如果能达到编程得心应手,想实现什么功能就编的出什么程序就好了,哈哈,,谢谢你!
追答多下功夫就行。加油互勉
我写过用for循环遍历数组查看是否有相等的数值,我想知道有没有固定的语句或方法可以实现这个功能呢?
我希望的是每次不包含的随机数是用户自定义的,不是固定的几个数,这种情况正则应该满足不了,不过还是谢谢你!
我希望的是每次不包含的随机数是用户自定义的,不是固定的几个数,这种情况正则应该满足不了,不过还是谢谢你!
那在数值较多时效率应该不高吧!JAVA中有没有固定的方法可以实现这个功能呢?
追答你产生随机数也是一个一个产生的 要想判断 无非在生成一个随机数后 判断 赋值 或者 生成所有随机数赋给数组后 判断数组里是否有重复的数 再重新随机生成 再判断 再赋值
固定的方法random这个类里没有 你去api里找找吧
哦,,那好吧。
嗯…检查什么(⊙o⊙)?
追答if(xx == 16 || xx == 25 || xx==33) {
重新取一个
}
我想让不包含的数字是不固定的,是每次都可以由用户自定义的数字,不过还是谢谢你(^_^)