溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Java ArrayList實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù)的示例

發(fā)布時(shí)間:2020-10-30 15:48:30 來源:億速云 閱讀:162 作者:Leah 欄目:開發(fā)技術(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)使用Java ArrayList實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù)的示例,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

使用數(shù)列ArrayList實(shí)現(xiàn),代碼如下:

/**
   * 隨機(jī)生成 N--M,N個(gè)不重復(fù)隨機(jī)數(shù) 使用ArrayList
   *
   * @param startRange 起始數(shù)字
   * @param endRange  終止數(shù)字
   * @param count   個(gè)數(shù)
   */
  public static ArrayList<Integer> getRandom(int startRange, int endRange, int count) {
    ArrayList<Integer> arr = new ArrayList<>();
    for (int i = 0; i < count; i++) {
      arr.add(((int) (Math.random() * (endRange - startRange + 1) + startRange)));
      for (int j = 0; j < i; j++) {
        if (arr.get(i) == arr.get(j)) {
          arr.remove(i);
          i--;
          break;
        }
      }
    }
    return arr;
  }

這個(gè)實(shí)現(xiàn)的原理和使用數(shù)組基本一致,但是需要注意的幾點(diǎn),我這里是使用的一個(gè)返回序列,參數(shù)只有起始值、終值和個(gè)數(shù),然后定義了一個(gè)ArrayList數(shù)列,使用數(shù)列的add方法,接收每一個(gè)產(chǎn)生的隨機(jī)數(shù),并使用For循環(huán)進(jìn)行判斷是否重復(fù),如果重復(fù)外循環(huán) i -- ,但是這里需要注意的是:此時(shí)ArrayList里面已經(jīng)存放了當(dāng)前的重復(fù)的值了,所以不能只用 i --,還需要使用梳理的remove方法將此不符合條件的數(shù)移除,這里是需要注意的,如果不寫著一句,在小的范圍內(nèi)生成的隨機(jī)數(shù)很可能會(huì)出現(xiàn)死循環(huán)。

下面是成功運(yùn)行的截圖:

使用Java ArrayList實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù)的示例

上述就是小編為大家分享的使用Java ArrayList實(shí)現(xiàn)生成不重復(fù)隨機(jī)數(shù)的示例了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI