关于生成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.shufengxianlan.com/qtweb/news14/135014.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联