Java 得到n個小於n的隨機數list
阿新 • • 發佈:2019-02-03
直接上程式碼,需要用到的直接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; } } }
附上我執行出來的結果截圖:
每個人執行出來的結果都不相同哦,因為是隨機數嘛~~~