1. 程式人生 > >隨機產生一個整數

隨機產生一個整數

Random類

1.大家都是知道的在java裡工具類中本來就有一個可以隨機產生一個隨機數的類 Random類。

但是眾所周知的,這個類所產生一個隨機數是不排除不重複的部分,那麼今天我們就來實現一個隨機產生一個不重複的整數。

2.陣列的下標是不能重複的,當我們想要隨機的取陣列中的元素的時候,陣列的元素不重複,也就是我們可以隨機的去取陣列中元素的下標。java提供的這個工具可能就不那麼實用了。

3.那麼就來實現這個方法:

package cn.ygr.java1606Random_10_19;

import java.util.Random;

/**
 * 生成一個不重複的隨機數
 * @author ygr
 *
 */
public class RandomUtil {
	public static Random random = new Random();

	public static int[] getRandomIndex(int number) {
		int[] indexs = new int[number];
		int n = 0;
		while (n < number) {
			indexs[n] = random.nextInt(number);

			/*
			 * 排除重複生成隨機數
			 */
			if (n >= 1) {
				int i = 0;
				while (i < n) {
					if (indexs[i] == indexs[n]) {
						break;
					} else {
						i++;
					}
				}

				if (i == n) {
					n++;
				}
			} else {
				n++;
			}

		}
		return indexs;
	}
}

下面是測試類
package cn.ygr.java1606Random_10_19;
/**
 * 
 * @author ygr
 *
 */
public class RandomTest {
	public static void main(String[] args) {
		//String[] names = {"張三","李四","王二","麻子","小明","小紅","麗麗","小花","小黑","旺財"};
		String[] names =new String[20];//定義一個20個人的陣列 ,隨機的去訪問他們的陣列下標0-19
		int[] randoms = RandomUtil.getRandomIndex(20);//呼叫方法,傳入需要產生的隨機數的個數即可
		
		for(int i : randoms){
			System.out.println("生成一個隨機下標為:"+i);
		}
	}
}

執行結果如圖: