java实现生成随机不重复整数,java随机数字不重复
如何解决写爬虫IP受阻的问题?立即使用。
在Java中生成随机数
1.调用java.lang下Math类中的random()方法生成随机数。
创建一个新文件,文件后缀为java,文件名为MyRandom。下面的代码是在这个类中编写的:
公共类MyRandom {
公共静态void main(String[] args) {
int radom=(int)(math . random()* 10);
system . out . println(radom);
}
}其中Math.random() //生成一个0到1之间的随机十进制数。
产生一个0到9之间的整数为:(int)(math . random()* 10);
要产生1到10之间的整数,可以写:(int)(math . random()* 10 1);
以此类推:如果你产生一个0到n之间的数,你应该写:math . random()* n;
取出一个指定长度的随机正整数:
public static int build random(int length){
int num=1;
双随机=math . random();
if(随机0.1) {
随机=随机0.1;
} for(int I=0;I长度;i ) {
num=num * 10
}
return(int)((random * num));
}2.调用java.util下的Random类,这个类的实例用来生成伪随机数流并生成随机整数,然后调用这个类的nextInt()方法。
在使用Random类之前,导入包下的Java . util . Random;代码是:
导入Java . util . random;
公共类MyRandom {
公共静态void main(String[] args) {
Random rand=new Random();
int rInt=rand . nextint(10);
system . out . println(rInt);
}
}其中Random rand=new Random()是创建一个新的随机数生成器;Rand.nextInt(Int n)是一个int值,取自此随机数生成器的序列,并均匀分布在0(包括0)和指定值n(不包括0)之间。
在Java中,在指定的整数范围类中,循环生成不同的随机数。
以生成6位和20位以内不相同的随机整数为例:
公共类MyRandom {
公共静态void main(String[] args) {
int n=20
Random rand=new Random();
boolean[]bool=new boolean[n];
int randInt=0;
for(int I=0;i6;i ) {
做{
randInt=rand . nextint(n);
} while(bool[randInt]);
bool[randInt]=true;
system . out . println(randInt);
}
}
}其中使用一个布尔变量数组来存储数字是否生成。生成后,数字变为true,作为下面布尔数组表中对应的布尔值,下一次生成数字时,将进入do.while循环来生成数字,直到它尚未生成。
比如生成一个长度为50的int类型的数组,然后在里面插入一个0到50之间的数,并且不能重复。
代码如下:
公共类MyRandom {
公共静态void main(String[] args) {
int[]in transdom=new int[50];
list my list=new ArrayList();//生成一个数据集,用来保存生成的数并进行判断。
Random rd=new Random();
while(mylist.size() 50) {
int num=rd . nextint(51);
如果(!mylist.contains(num)) {
my list . add(num);//向集合中添加数据。
}
}
for(int I=0;I my list . size();i ) {
in transdom[I]=(Integer)(my list . get(I));
}
}
}
/**
*随机生成一个不重复的指定范围的集合。
* @param size
* @返回
*/
public static set integer generaterandarray(int size){
set integer set=new LinkedHashSetInteger();//集合为非重复值,LinkedHashSet为有序非重复集合,HashSet为无序非重复集合。
整数num=size
整数范围=大小;
Random ran=new Random();
while(set.size() num){
integer tmp=ran . nextint(range);//从0到51之间随机选择一个数字
set . add(tmp);//直接添加。当有重复值时,直到集合的长度为52时才会添加。
}
返回集合;
}更多java知识请关注java基础教程部分。以上是java产生不重复随机数的方法的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。