Java中从m个数中随机选取n个不同的数(m>=n),并进行排序

原文地址:点击打开链接

我这里直接给出我写的函数,只需传入参数便可直接使用:

[java]  view plain  copy
  1. //从x-y中的数中随机找出num个不同的数,返回给integer的动态数组中  
  2. ArrayList<Integer> makeRandom(int x, int y, int num)  
  3.     {   
  4.         //创建一个integer的动态数组  
  5.         ArrayList<Integer> a = new ArrayList<Integer>();  
  6.         int index = 0;  
  7.         //往数组里面逐一加取到不重复的元素  
  8.         while(index < num)  
  9.         {  
  10.         //产生x-y的随机数  
  11.             Random r = new Random();  
  12.             int temp = r.nextInt(y-x)+x ;  
  13.         //设置是否重复的标记变量为false  
  14.             boolean flag = false;  
  15.             for(int i =0; i<index;i++)  
  16.             {  
  17.                 if(temp == a.get(i))  
  18.                 {  
  19.                     flag = true;  
  20.                     break;  
  21.                 }  
  22.             }  
  23.             if(flag==false)  
  24.             {  
  25.                 a.add(temp);  
  26.                 index++;  
  27.             }  
  28.         }  
  29.         return a;  
  30.     }  


使用举例,并实现排序功能:

[java]  view plain  copy
  1. ArrayList<Integer> a = makeRandom(10,205);//在10-20中随机找5个不同的数  
  2.   //将ArrayList转换为Object的普通数组并进行排序  
  3. Object[] b = a.toArray();  
  4. Arrays.sort(b);  
  5. for(int i = 0; i < b.length;i++)  
  6.  {  
  7.     System.out.println(b[i]);  
  8.  }  

猜你喜欢

转载自blog.csdn.net/qq_29347295/article/details/80348865