用TreeSet生成不重複自動排序隨機數組
隨機數的重複問題,這個問題常常被忽略,本文利用TreeSet集合實現不重複的數列,並自動完成元素的排序後然後生成數組。
TreeSet集合屬於Set集合的子類,Set集合不允許有重複的元素存在,所以重複數據是不允許添加到Set集合中的;
而add()的返回值可以確定添加操作是否成功完成,該方法的聲明如下:public boolean add(E e)
代碼如下所示:
package com.chapter.three.one.cn;
import java.util.ArrayList;
import java.util.Random;
import java.util.TreeSet;
public class RandomSortArray {
/**
* @param args
*/
public static void main(String[] args) {
TreeSet<Integer> set = new TreeSet<Integer>();// 創建TreeSet集合對象
Random ran = new Random();// 創建隨機數對象
int count = 0;// 定義隨機數計數器
while (count < 10) {// 循環生成隨機數
boolean succeed = set.add(ran.nextInt(100));// 為集合添加數字
if (succeed)// 累加成功添加到集合中數字的數量
count++;
}
int size = set.size();// 獲取集合大小
Integer[] array = new Integer[size];// 創建同等大小的數組
Integer[] ddd = set.toArray(array);// 獲取集合中的數組
System.out.println("生成的重複隨機數組內容如下:");
for (int value : array) {// 遍曆輸出數組內容
System.out.print(value + " ");
}
}
}
輸出:(隨機的,不一樣,我大致列取5次輸出)
第一次:
生成的重複隨機數組內容如下:
16 26 34 39 42 52 70 73 86 89
第二次:
生成的重複隨機數組內容如下:
5 11 16 26 31 43 58 78 86 89
第三次:
生成的重複隨機數組內容如下:
0 18 29 34 44 46 55 57 77 84
第四次:
生成的重複隨機數組內容如下:
9 17 23 27 47 62 68 73 86 99
第五次:
生成的重複隨機數組內容如下:
12 14 39 43 48 68 69 80 86 95
最後更新:2017-04-02 17:09:26