黑马程序员技术交流社区

标题: 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。 [打印本页]

作者: Kaweh.    时间: 2016-7-31 23:14
标题: 编写一个程序,获取10个1至20的随机数,要求随机数不能重复。
求代码和注释
作者: cat73    时间: 2016-7-31 23:22
简单思路:
一个 List,加入 1 ~ 20 这 20 个数字,每次 random.nextInt(List.size()); 取一个位置。
将 List 中这个位置的数字作为结果返回。
然后从 List 里删掉这个数字。

妮也可以用其他东西代替 List,比如数组。
作者: rockphoenix    时间: 2016-7-31 23:30
[Java] 纯文本查看 复制代码
Random r = new Random();
TreeSet<Integer> set = new TreeSet<Integer>();
        while (set.size() != 10) {
                int num = r.nextInt(20) + 1;
                set.add(num);
        }
        System.out.println(set);

作者: xuexi1922622501    时间: 2016-8-1 00:58
public static void main(String[] args) {
                //这里使用HashSet存储 整数  HashSet是无序且不可重复的
                HashSet<Integer> set = new HashSet<Integer>();
                //创建随机数对象
                Random random = new Random();
                //当set中的个数小于10的时候 就一add因为add相同的元素时 元素会被冲掉 所以这里选择while循环
                while(set.size()<10){
                        set.add(random.nextInt(20)+1);
                }
                //使用增强for来遍历set集合
                for(Integer i : set){
                        System.out.print(i+"  ");
                }
        }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2