java获取10个不重复随机数,且从小到大排序
今天去做了一套笔试题,遇到这么一道题,一般我们的步骤是定义一个数组,再获取随机数存入数组,再加上判断该数是否已存在,如存在就不放入,不存在就放入数组中,然后再冒泡排序。 这样下来代码量是不是就暴增了,而且容易出错,刚开始我也是这么想的,然而写到了一半,想到了一个简单的方法,利用TreeSet集合 TreeSet集合有个特点,值不能重复,且在存储时能对键进行自然排序,刚好是升序,是不是完美的解决了这道题。 直接上代码:
//获取不重复随机数 import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; public class Demo { public static void main(String[] args) { TreeSet t=new TreeSet(); while(t.size()<10){ int num=(int)(Math.random()*100); t.add(num); } for (Object object : t) { System.out.println(object); } } }
这才多少代码量。 运行结果: