加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java产生100个1-150间不重复数字

发布时间:2020-12-14 23:28:09 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 import java.util.Arrays; /** * 用Java产生100个1-150的数字 */ public class RandomTest { public static void main(String[] args) { int[] result

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

    import java.util.Arrays;  
      
    /** 
     * 用Java产生100个1-150的数字 
     */  
    public class RandomTest {  
      
        public static void main(String[] args) {  
            int[] resultArr = produceNum(1,150,100);  
            for (Integer num : resultArr) {  
                System.out.println(num);  
            }  
              
            System.out.println("+++++++++++++++++===================+++++++++++++");  
              
            // 对结果数组排序后再输出  
            Arrays.sort(resultArr);  
            for (Integer num : resultArr) {  
                System.out.println(num);  
            }  
        }  
      
        /** 
         * 产生随机数字 
         * @param minNum 最小数字 
         * @param maxNum 最大数字 
         * @param numCount 产生的数字个数 
         * @return 结果数组 
         */  
        public static int[] produceNum(int minNum,int maxNum,int numCount) {  
              
            // 入参校验  
            // 如果随机数的个数大于产生随机数的范围;或最大数小于最小数  
            // 直接返回null,说明入参不符合要求  
            if (numCount > (maxNum - minNum + 1) || maxNum < minNum) {  
                return null;  
            }  
              
            // 存放结果的数组  
            int[] resultArr = new int[numCount];  
              
            // count 记录已产生的随机数的个数  
            int count = 0;  
              
            while(count < numCount) {  
                  
                // 产生随机数  
                int num = (int) (Math.random() * (maxNum - minNum)) + minNum;  
                  
                // flag 定义本次产生的随机数是否已在数组中  
                boolean flag = true;  
                  
                // 遍历数组中已产生的随机数  
                for (int i=0; i<count; i++) {  
                      
                    // 同本次产生的随机数最比较  
                    if (num == resultArr[i]) {  
                          
                        // 如果已存在相同的值,则跳出for循环,继续外层的while循环,产生下一个随机数  
                        flag = false;  
                        break;  
                    }  
                }  
                  
                // 如果本次产生的随机数在数组中不存在,则将该随机数存放在数组中  
                if (flag) {  
                    resultArr[count] = num;  
                      
                    // 数组中已产生的随机数个数加1  
                    count++;  
                }  
            }  
              
            return resultArr;  
        }  
    }  

由于每次产生的num都是随机的,所以无法保证重复的问题,所以只有通过去同已经产生的存在数组中的数字去比较,相同,则重新产生,不同,则添加进数组。

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读