閱讀395 返回首頁    go 技術社區[雲棲]


用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

  上一篇:go Android RoboGuice介紹
  下一篇:go jni使用基礎(二)之調用及工具使用