Random生成随机数

random用于生成0-1之间随机数。可以用java.util.Random的random随机数类,也可以用java.lang下的Math.random()。对于一些方法建议去看源码更加清晰一些。

1、生成指定位数的随机数

//利用随机数对象random
public class RandomUtil {
	/**
	 * 生成指定位数的随机数
	 * @param length 随机数长度
	 * @return
	 */
	public static String getRandom(int length){
		String val = "";
		Random random = new Random();
		for (int i = 0; i < length; i++) {
			val += String.valueOf(random.nextInt(10));
		}
		return val;
	}
    
public static void main(String[] args) {
  System.out.println(getRandom(6));
}

2、生成指定范围内的随机数

public static void main(String[] args) {
        //打印 10到20之间的随机数
        int min = 10;
        int max = 20;
        for(int i=0;i<10;i++){
            System.out.println(new Random().nextInt(max-min)+min);
        }
}

3、生成指定位数的不重复的随机数

生成的随机数有可能是重复的,因此如果要生成不重复的随机数,只需要把生成的随机数放入set集合中即可。

	/**
     *
     * @param len 随机数长度
     * @return 返回一个随机数拼接成的字符
     */
    public static String getRandom(int len){
        String ISBN="";
        Random random = new Random();
        for (int i = 0; i < len; i++) {
            ISBN += String.valueOf(random.nextInt(10));
        }
        return ISBN;
    }

    /**
     *
     * @param len 随机数位数长度
     * @param num 要生成的随机数个数
     * @return 返回一个不重复的随机数list
     */
    public static List<String> getDistinctRandom(int len, int num) {
                Set<String> s = new HashSet<>();
                while (s.size() < num) {
                      s.add(getRandom(len));
                   }
               return new ArrayList<>(s);
    }

    public static void main(String[] args) {
        List list=getDistinctRandom(10,10);
        
        for (int i = 0; i <list.size() ; i++) {
            System.out.println(list.get(i));
        }
    }

参考博文:
(1) https://blog.csdn.net/csdnliuxin123524/article/details/80240178
(2) https://www.cnblogs.com/pcheng/p/10956570.html

posted @ 2020-05-12 23:13  jason小蜗牛  阅读(1702)  评论(0编辑  收藏  举报