用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