Java ArrayList如何实现生成不重复随机数

网友投稿 253 2022-11-20


Java ArrayList如何实现生成不重复随机数

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

/**

* 随机生成 N--M,N个不重复随机数 使用ArrayList

*

* @param startRange 起始数字

* @param endRange 终止数字

* @param count 个数

*/

public static ArrayList getRandom(int startRange, int endRange, int count) {

ArrayList 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;

}

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

下面是成功运行的截图:


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JAVA使用quartz添加定时任务,并依赖注入对象操作
下一篇:Java数据库连接池连接Oracle过程详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~