1. 程式人生 > >《java入門第一季》之HashSet小案例:獲取10個1至20的隨機數,要求隨機數不能重複

《java入門第一季》之HashSet小案例:獲取10個1至20的隨機數,要求隨機數不能重複

這是基於HashSet集合的唯一性。

/*
 * 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。
 * 
 * 分析:
 * A:建立隨機數物件
 * B:建立一個HashSet集合
 * C:判斷集合的長度是不是小於10
 * 是:就建立一個隨機數新增
 * 否:不搭理它
 * D:遍歷HashSet集合
 */

程式碼寫了出來:

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

public class HashSetDemo {
	public static void main(String[] args) {
		// 建立隨機數物件
		Random r = new Random();

		// 建立一個Set集合
		HashSet<Integer> ts = new HashSet<Integer>();//Integer已經重寫了hashcode和equals方法,
		//所以自動判斷是否相同,且排除相同元素,保證了元素的唯一性

		// 判斷集合的長度是不是小於10。總共10個數
		while (ts.size() < 10) {
			int num = r.nextInt(20)+1;
			ts.add(num);//HashSet保證元素唯一性,重複的數值根本存不進去。原因歸結為Integer已經重寫了hashcode和equals方法,
		}

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

結果:

19
4
20
7
8
10
11
13
14
15

不會出現重複。