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