395
技術社區[雲棲]
用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