不冷博客

Java基础之产生10个1~20之间的随机数,要求随机数不能重复

今天遇到个比较有趣的问题,使用Java产生10个1~20之间的随机数,要求随机数不能重复,关键在于10个随机数不能重复这个条件。不能重复(想到Set集合)
关于集合详解大家可以看我这篇文章[post cid="76" /]
上该问题的代码

package com.buleng.pro_seven;

import java.util.HashSet;
import java.util.Iterator;

public class Test{
    public static void main(String[] args) {
        HashSet set = new HashSet();
        while (set.size()!=10){//集合元素不到十个,便一直生成随机数
            int num = (int)(Math.random() * (20 - 1)) + 1;//生成1-20的随机数
            set.add(num);
        }
        Iterator iterator = set.iterator();//迭代器遍历
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }

    }
}

结果

16
17
2
3
4
10
11
12
13
15

当然,结果是随机的10个数,肯定大家的不一样
最有趣的地方我觉得在于这个set.size()!=10不容易联想到

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »