关于生成Java不重复的随机数:

成都创新互联公司是一家专业提供隆阳企业网站建设,专注与网站设计制作、网站设计、H5建站、小程序制作等业务。10年已为隆阳众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
- import java.util.*;
 - public class Test...{
 - public static void main(String[] args)...{
 - //生成 [0-n) 个不重复的随机数
 - / st 用来保存这些随机数
 - ArrayList list = new ArrayList();
 - int n = 10;
 - Random rand = new Random();
 - boolean[] bool = new boolean[n];
 - int num =0;
 - for (int i = 0; i
 - do...{
 - //如果产生的数相同继续循环
 - num = rand.nextInt(n);
 - }while(bool[num]);
 - bool[num] =true;
 - list.add(num);
 - }
 - System.out.println (list);
 - }
 - public class Test
 - {
 - public static void main(String[] args)
 - {
 - int[] arr = new int[10];
 - for (int i = 0; i < 10; i++)
 - {
 - arr[i] = (int) (Math.random() * 40) + 1;
 - for (int j = 0; j < i; j++)
 - {
 - if (arr[j] == arr[i])
 - {
 - i--;
 - break;
 - }
 - }
 - }
 - for (int i = 0; i < 10; i++)
 - System.out.print(arr[i] + " ");
 - }
 - }
 - b.
 - Java code
 - import java.util.*;
 - public class Test
 - {
 - public static void main(String[] args)
 - {
 - int n=40;
 - int[] num = new int[n];
 - for(int i=0;i
 - num[i] = i+1;
 - int[] arr = new int[10];
 - for(int i=0;i
 - {
 - int r =(int)(Math.random()*n);
 - arr[i]=num[r];
 - num[r]=num[n-1];
 - n--;
 - }
 - for(int i=0;i
 - System.out.print(arr[i]+" ");
 - }
 - }
 - c.
 - Java code
 - import java.util.*;
 - public class Test
 - {
 - public static void main(String[] args)
 - {
 - LinkedList
 myList= new LinkedList (); - int n=40;
 - for(int i=0;i
 - myList.add(i+1);
 - int[] arr = new int[10];
 - for(int i=0;i
 - {
 - arr[i]=myList.remove((int)(Math.random()*n));
 - n--;
 - }
 - for(int i=0;i
 - {
 - System.out.print(arr[i]+" ");
 - }
 - }
 - }
 - d.
 - Java code
 - import java.util.*;
 - public class Test
 - {
 - public static void main(String[] args)
 - {
 - Set
 mySet = new LinkedHashSet (); - while(mySet.size() <10)
 - {
 - mySet.add((int)(Math.random()*40+1));
 - }
 - for(Integer i:mySet)
 - {
 - System.out.print(i+" ");
 - }
 - }
 - }
 
方法一:
在一个待选数组中随机产生一个数,然后把他放到待选数组的最后,然后从length-1里随机产生下一个随机数,如此类推
- public static int[] randoms()
 - {
 - Random r = new Random();
 - int temp1,temp2;
 - int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
 - int len = send.length;
 - int returnValue[] = new int[22];
 - for(int i=0;i<22;i++)
 - {
 - temp1 = Math.abs(r.nextInt())% len;
 - returnValue[i] = send[temp1];
 - temp2 = send[temp1];
 - send[temp1] = send[len-1];
 - send[len-1] = temp2;
 - len--;
 - }
 - return returnValue;
 - }
 - }
 
方法二:
还是一个固定的无重复的数组,然后把这个数组随机调换位置,多次之后这个数组就是一个无重复的随机数组了。
- public static int[] random2()
 - {
 - int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
 - int temp1,temp2,temp3;
 - Random r = new Random();
 - for(int i=0;i
 - {
 - temp1 = Math.abs(r.nextInt())%(send.length-1); //随机产生一个位置
 - temp2 = Math.abs(r.nextInt())%(send.length-1); //随机产生另一个位置
 - if(temp1 != temp2)
 - {
 - temp3 = send[temp1];
 - send[temp1] = send[temp2];
 - send[temp2] = temp3;
 - }
 - }
 - return send;
 - }
 
                标题名称:Java产生不重复随机数方法
                
                文章源于:http://www.csdahua.cn/qtweb/news14/135014.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网