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

互联网 19-11-23

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中产生随机不重复数的方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: java
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java多线程面试题目

相关资讯