JAVA如何在生成随机数中不包含某个数字? 例如:Random random=new Random();array[i]

问题描述:

JAVA如何在生成随机数中不包含某个数字? 例如:Random random=new Random();array[i]=random.nextInt(50);生成随机数中要求不包含16.25.33等多个数字?谢谢!
1个回答 分类:综合 2014-12-11

问题解答:

我来补答
自己设置一个方法(或者包装系统的Random类,这个更难,不过更专业),下面给你代码:
public int getRandomExcept(int RandMax,int[] ExceptNums){
Random rand=new Random();
int num=rand.nextInt(RandMax);
while(true){
int have=0;
for(int i=0;i
再问: 我好好学一下你的方法,谢谢你,还有就是怎么实现生成随机数中没有重复的数字呢?可别又是用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刚刚一个月,现在也就会编一些基本的单线程小程序,还经常遇到问题,如果能达到编程得心应手,想实现什么功能就编的出什么程序就好了,哈哈,,谢谢你!
再答: 多下功夫就行。加油互勉
 
 
展开全文阅读
剩余:2000
也许感兴趣的知识