java实现生成随机不重复整数,java随机数字不重复

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: