1. 程式人生 > 其它 >利用隨機函式建立一個不重複的陣列

利用隨機函式建立一個不重複的陣列

import java.util.Random; //匯入的隨機函式類

public class RandomTest {

public static void main(String[] args) {
  Random random = new Random(); //隨機函式Random
  int[] arr = new int[10]; //生成10個不重複的隨機數
  int index = 0; //用來記錄陣列下標

  while(index < arr.length) { //用作迴圈結束判斷條件
    int num = random.nextInt(11); //隨機生成一個1~10之間的數,在此只能夠給定一個大於等於陣列長度的隨機數,否則該陣列永遠填不滿,程式便會進入死迴圈
    if (!RandomTest.contains(arr, num)) {     //呼叫靜態方法驗證陣列中是否存在這個數

    //如果陣列中不存在該數,則將該數新增至陣列 index++ 位置
    arr[index++] = num;
    }
  }

  for (int i = 0; i < arr.length; i++) { //氣泡排序
    for (int j = arr.length - 1; j > i; j--) {
      if (arr[j - 1] > arr[j]) {
        int temp = arr[j - 1];
        arr[j - 1] = arr[j];
        arr[j] = temp;
      }
    }
  }
  for (int i : arr) { //foreach迴圈遍歷陣列列印輸出
    System.out.print(i + " ");
  }

}

public static boolean contains(int[] arr, int key) {
  for (int i = 0; i < arr.length; i++) {
    if (arr[i] == key) { //如果該數在陣列中已經存在則直接返回true
      return true;
    }
  }
  return false;
  }

}