Java随机数

本文详细探讨了Java中如何生成随机数,包括基本的Random类,种子的使用,以及在各种场景下如何选择合适的随机数生成方法。还讨论了线程安全的Random实现和在加密应用中的安全随机数生成策略。
摘要由CSDN通过智能技术生成
随机数
public class RandomUtil {

/**

* 获取随机位数的(数字)字符串

* @param length 位数

* @return

*/

public static String getRandomNumber(int length) {

String base = "0123456789";

Random random = new Random();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < length; i++) {

int number = random.nextInt(base.length());

sb.append(base.charAt(number));

}

return sb.toString();

}

/**

* 获取随机位数的字符串

* @param length 位数

* @return

*/

public static String getRandomString(int length) {

String base = "abcdefghijklmnopqrstuvwxyz0123456789";

Random random = new Random();

StringBuffer sb = new StringBuffer();

for (int i = 0; i < length; i++) {

int number = random.nextInt(base.length());

sb.append(base.charAt(number));

}

return sb.toString();

}

/**

* 获取随机数

* @param total 总数

* @param length 返回位数

* @return

*/

public static List<Integer> getRandomNumber(Integer total,int length,List<Integer> list) {

if(ToolUtil.isEmpty(list)){

list = new ArrayList<>();

}

Random random = new Random();

for (int i = 0; i < length; i++) {

list.add(RandomUtil.getRandomValue(list,total,random));

}

return list;

}

/**

* 返回随机数,不可重复

* @param list

* @param total

* @return

*/

public static Integer getRandomValue(List<Integer> list,Integer total,Random random){

if(ToolUtil.isOneEmpty(total,random)){

return null;

}

if(ToolUtil.isEmpty(list)){

list = new ArrayList<>();

}

Integer number = random.nextInt(total) + 1;

if(list.contains(number)){

return RandomUtil.getRandomValue(list,total,random);

}else {

return number;

}

}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值