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

时间:2023-01-08 18:03:12

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

//从x-y中的数中随机找出num个不同的数,返回给integer的动态数组中
ArrayList<Integer> makeRandom(int x, int y, int num)
{
//创建一个integer的动态数组
ArrayList<Integer> a = new ArrayList<Integer>();
int index = 0;
//往数组里面逐一加取到不重复的元素
while(index < num)
{
//产生x-y的随机数
Random r = new Random();
int temp = r.nextInt(y-x)+x ;
//设置是否重复的标记变量为false
boolean flag = false;
for(int i =0; i<index;i++)
{
if(temp == a.get(i))
{
flag = true;
break;
}
}
if(flag==false)
{
a.add(temp);
index++;
}
}
return a;
}


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

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