Java中Math类的random()方法可以生成[0,1)之间的随机浮点数
1.在main方法中调用
public static void main(String[] args) {
double min =1;
double max =5;
int n=10000000;
List<BigDecimal> list = randomList(min,max,n);
System.out.print(list);
System.out.print(list.size());
}
/**
* 随机指定范围内N个区间内的Decimal数
*、
* @param min 指定范围最小值
* @param max 指定范围最大值
* @param n 随机数个数
*/
public static List<BigDecimal> randomList(double min, double max, int n) {
List<BigDecimal> list= new ArrayList<BigDecimal>();
for (int i = 0; i < n; i++) {
// 调用Math.random()方法
int num = (int) ((Math.random() *(max - min)) + min);
BigDecimal nums = BigDecimal.valueOf(num*0.01);
list.add(nums);// 将不同的数存入List中
}
int listSize = list.size();
System.out.println(listSize);
// 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小
if (listSize < n) {
randomList(min, max, n - setSize);// 递归
}
return list;
}