原文地址:点击打开链接
我这里直接给出我写的函数,只需传入参数便可直接使用:
- //从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]);
- }