zoukankan      html  css  js  c++  java
  • Java的ArrayList实现随机生成N-M之间N个不重复的随机数

    在此之前我使用Java的数组实现了产生N-M之间的不重复的随机数,下面是使用数列ArrayList实现同样的功能,代码如下:

     1     /**
     2      * 随机生成 N--M,N个不重复随机数  使用ArrayList
     3      *
     4      * @param startRange 起始数字
     5      * @param endRange   终止数字
     6      * @param count      个数
     7      */
     8     public static ArrayList<Integer> getRandom(int startRange, int endRange, int count) {
     9         ArrayList<Integer> arr = new ArrayList<>();
    10         for (int i = 0; i < count; i++) {
    11             arr.add(((int) (Math.random() * (endRange - startRange + 1) + startRange)));
    12             for (int j = 0; j < i; j++) {
    13                 if (arr.get(i) == arr.get(j)) {
    14                     arr.remove(i);
    15                     i--;
    16                     break;
    17                 }
    18             }
    19         }
    20         return arr;
    21     }

    这个实现的原理和使用数组基本一致,但是需要注意的几点,我这里是使用的一个返回序列,参数只有起始值、终值和个数,然后定义了一个ArrayList数列,使用数列的add方法,接收每一个产生的随机数,并使用For循环进行判断是否重复,如果重复外循环 i -- ,但是这里需要注意的是:此时ArrayList里面已经存放了当前的重复的值了,所以不能只用 i --,还需要使用梳理的remove方法将此不符合条件的数移除,这里是需要注意的,如果不写着一句,在小的范围内生成的随机数很可能会出现死循环。

    下面是成功运行的截图:

  • 相关阅读:
    grep 命令操作
    vi & vim复制,粘贴,剪切文本
    β版本第四次冲刺
    β版本第三次冲刺
    β版本第二次冲刺
    β版本第一次冲刺
    华为软件开发云,个人评测及体会
    事后诸葛亮
    【Alpha】团队课程展示
    团队Alpha博客链接目录
  • 原文地址:https://www.cnblogs.com/lwl80/p/13356470.html
Copyright © 2011-2022 走看看