• 技术文章 >Java >Java基础

    java中产生随机不重复数的方法

    尚2019-12-05 11:51:33原创1685

    java中产生随机不重复数的方法:

    根据min和max,生成n个不重复的随机数。(注:范围[min,max],n <= (max - min +1))

    思路:

    0)、把从min到max的可能出现的数字全部放进一个候选List;

    1)、随机生成索引index(0 <= index <= (list.size()-1));

    2)、根据index从List中取出一个数,list.get(index),并移除这个元素;

    代码如下:

    import java.util.ArrayList;
    import java.util.List;
    import java.util.Random;
    
    public class MyRandom {
    
        /**
         * 根据min和max随机生成一个范围在[min,max]的随机数,包括min和max
         * @param min
         * @param max
         * @return int
         */
        public int getRandom(int min, int max){
            Random random = new Random();
            return random.nextInt( max - min + 1 ) + min;
        }
    
        /**
         * 根据min和max随机生成count个不重复的随机数组
         * @param min
         * @param max
         * @param count
         * @return int[]
         */
        public int[] getRandoms(int min, int max, int count){
            int[] randoms = new int[count];
            List<Integer> listRandom = new ArrayList<Integer>();
    
            if( count > ( max - min + 1 )){
                return null;
            }
            // 将所有的可能出现的数字放进候选list
            for(int i = min; i <= max; i++){
                listRandom.add(i);
            }
            // 从候选list中取出放入数组,已经被选中的就从这个list中移除
            for(int i = 0; i < count; i++){
                int index = getRandom(0, listRandom.size()-1);
                randoms[i] = listRandom.get(index);
                listRandom.remove(index);
            }
    
            return randoms;
        }
    }

    Java Math.random() 方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。

    更多java知识请关注java基础教程

    以上就是java中产生随机不重复数的方法的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java
    上一篇:设计java中的接口需要遵循哪些原则 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • java怎么绘制简单图形• java判断字符串是不是数字的方法• java中怎么删除文件和目录• java中判断是否相等的方法
    1/1

    PHP中文网