Java ArrayList如何实现生成不重复随机数
程序员文章站
2022-03-21 12:54:01
在此之前我使用java的数组实现了产生n-m之间的不重复的随机数,下面是使用数列arraylist实现同样的功能,代码如下:/** * 随机生成 n--m,n个不重复随机数 使用arraylist...
在此之前我使用java的数组实现了产生n-m之间的不重复的随机数,下面是使用数列arraylist实现同样的功能,代码如下:
/** * 随机生成 n--m,n个不重复随机数 使用arraylist * * @param startrange 起始数字 * @param endrange 终止数字 * @param count 个数 */ 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; }
这个实现的原理和使用数组基本一致,但是需要注意的几点,我这里是使用的一个返回序列,参数只有起始值、终值和个数,然后定义了一个arraylist数列,使用数列的add方法,接收每一个产生的随机数,并使用for循环进行判断是否重复,如果重复外循环 i -- ,但是这里需要注意的是:此时arraylist里面已经存放了当前的重复的值了,所以不能只用 i --,还需要使用梳理的remove方法将此不符合条件的数移除,这里是需要注意的,如果不写着一句,在小的范围内生成的随机数很可能会出现死循环。
下面是成功运行的截图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。