獲取不重復隨機數,自定義取值范圍

import java.util.HashSet;

import java.util.Set;

/**

* <p>

*? ? 獲取不重復隨機數

* </p>

*

* @author passer

* @since 2021-03-09

*/

public class RandomUtil {

? ? private static final Set set = new HashSet();

? ? private static Integer min;//隨機數最小值

? ? private static Integer max;//隨機數最大值

? ? /**

? ? *

? ? * @param min 隨機數最小值

? ? * @param max 隨機數最大值(不包含)

? ? */

? ? public RandomUtil(Integer min, Integer max){

? ? ? ? this.min = min;

? ? ? ? this.max = max;

? ? }

? ? /**

? ? *

? ? * @return 隨機數

? ? */

? ? public String getRandom(){

? ? ? ? Integer num = new java.util.Random().nextInt(max - min) + min;

? ? ? ? boolean b = true;

? ? ? ? while (b){

? ? ? ? ? ? if(set.contains(num)){

? ? ? ? ? ? ? ? num = new java.util.Random().nextInt(max - min) + min;

? ? ? ? ? ? }else {

? ? ? ? ? ? ? ? set.add(num);

? ? ? ? ? ? ? ? return "" + num;

? ? ? ? ? ? }

? ? ? ? ? ? if(set.size() == max-min){

? ? ? ? ? ? ? ? b = false;

? ? ? ? ? ? ? ? num = null;

? ? ? ? ? ? ? ? return "" + num;

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? return "" + num;

? ? }

? ? public void clearSet(){

? ? ? ? set.clear();

? ? }

? ? public static void main(String[] args) {

? ? ? ? RandomUtil randomUtil = new RandomUtil(100,1000);//聲明一次

? ? ? ? for(int i = 0; i < 1000; i++){

? ? ? ? ? ? System.out.println(randomUtil.getRandom());

? ? ? ? ? ? if(i>900){

? ? ? ? ? ? ? ? randomUtil.clearSet();

? ? ? ? ? ? }

? ? ? ? }

? ? }

}

————————————————

最后,分享一個博客:一路有你

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 夜鶯2517閱讀 128,210評論 1 9
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭,有人歡樂有人憂愁,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,879評論 28 54
  • 兔子雖然是枚小碩 但學校的碩士四人寢不夠 就被分到了博士樓里 兩人一間 在學校的最西邊 靠山 兔子的室友身體不好 ...
    待業(yè)的兔子閱讀 2,780評論 2 9
  • 信任包括信任自己和信任他人 很多時候,很多事情,失敗、遺憾、錯過,源于不自信,不信任他人 覺得自己做不成,別人做不...
    吳氵晃閱讀 6,391評論 4 8

友情鏈接更多精彩內容