Java中從m個數中隨機選取n個不同的數(m>=n),並進行排序
阿新 • • 發佈:2019-02-02
我這裡直接給出我寫的函式,只需傳入引數便可直接使用:
- //從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]);
- }