集合框架-獲取無重複的隨機數案例

ZHOU_VIP發表於2017-04-26

(4)案例:

    A:獲取無重複的隨機數


package cn.itcast_08;

import java.util.HashSet;
import java.util.Random;

/*
 * 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。
 * 
 * 分析:
 * 		A:建立隨機數物件
 * 		B:建立一個HashSet集合
 * 		C:判斷集合的長度是不是小於10
 * 			是:就建立一個隨機數新增
 * 			否:不搭理它
 * 		D:遍歷HashSet集合
 */
public class HashSetDemo {
	public static void main(String[] args) {
		// 建立隨機數物件
		Random r = new Random();

		// 建立一個Set集合
		HashSet<Integer> ts = new HashSet<Integer>();

		// 判斷集合的長度是不是小於10
		while (ts.size() < 10) {
			int num = r.nextInt(20) + 1;
			ts.add(num);
		}

		// 遍歷Set集合
		for (Integer i : ts) {
			System.out.println(i);
		}
	}
}

對比之前用List集合寫過的程式碼:


public class RandomDemo {  
    public static void main(String[] args) {  
        // 建立產生隨機數的物件  
        Random r = new Random();  
  
        // 建立一個儲存隨機數的集合。  
        ArrayList<Integer> array = new ArrayList<Integer>();  
  
        // 定義一個統計變數。從0開始。  
        int count = 0;  
  
        // 判斷統計遍歷是否小於10  
        while (count < 10) {  
            //先產生一個隨機數  
            int number = r.nextInt(20) + 1;  
              
            //判斷該隨機數在集合中是否存在。  
            if(!array.contains(number)){  
                //如果不存在:就新增,統計變數++。  
                array.add(number);  
                count++;  
            }  
        }  
          
        //遍歷集合  
        for(Integer i : array){  
            System.out.println(i);  
        }  
    }  
}



相關文章