1. 程式人生 > >Java 得到n個小於n的隨機數list

Java 得到n個小於n的隨機數list

直接上程式碼,需要用到的直接copy,程式碼上有註釋,簡單易懂,拿走不謝!

package com.jglz.qing.random;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class RandomTest {

	public static void main(String[] args) {
		List<Integer> numberList = getQuestionNumList(10);
		List<Integer> numberList2 = getRandomQuestionNumList(10, 10);
		System.out.println(numberList.toString());
		System.out.println(numberList2.toString());
	}

	/**
	 * 得到[0,questionCount)之間的共questionCount個不重複的隨機數
	 */
	public static List<Integer> getQuestionNumList(int questionCount) {
		List<Integer> myList = new ArrayList<Integer>(); // 生成資料集,用來儲存隨即生成數,並用於判斷
		Random rd = new Random();
		while (myList.size() < questionCount) {
			int num = rd.nextInt(questionCount);// nextInt(n)將返回一個大於等於0小於n的隨機數
			if (!myList.contains(num)) {
				myList.add(num);
			}
		}
		return myList;
	}

	/**
	 * 得到[0,totalCount)之間的questionCount個不重複的隨機數 。
	 * totalCount必須大於等於questionCount
	 */
	public static List<Integer> getRandomQuestionNumList(int questionCount,
			int totalCount) {
		if (totalCount < questionCount) {
			return null;
		} else {
			List<Integer> myList = new ArrayList<Integer>(); // 生成資料集,用來儲存隨即生成數,並用於判斷
			Random rd = new Random();
			while (myList.size() < questionCount) {
				// int num = rd.nextInt(totalCount);
				// 如果上面的程式碼變成下面這樣,將得到[10,totalCount+10)之間的questionCount個不重複的隨機數
				int num = rd.nextInt(totalCount) + 10;
				if (!myList.contains(num)) {
					myList.add(num);
				}
			}
			return myList;
		}
	}
}

附上我執行出來的結果截圖:


每個人執行出來的結果都不相同哦,因為是隨機數嘛~~~