简单权重概率工具实现功能:获取int、double类型的随机数,获取概率事件,从集合中取随机元素,获取两数间随机数,获取某数组、list范围内N个随机数,从[0-9] 和 [A-Z] 中随机定长的字符串。
package com.xiu.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;
/**
*权重概率
*
* @author xiu
* @version 2017年8月9日 下午3:58:36
*/
public class Probability {
private final static Random random = new Random();
private static char[] numbersAndLetters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
.toCharArray();
private Probability() {
}
/**
* 获取随机数
*
* @param min
* @param max
* @return Integer, null: when max < min
*/
public static final Integer rand(int min, int max) {
int tmp = max - min;
if (tmp < 0) {
return null;
} else if (tmp == 0) {
return min;
} else {
return random.nextInt(tmp + 1) + min;
}
}
/**
* 获取随机数
*
* @param min
* @param max
* @return Integer, null: when max < min
*/
public static final Long rand(long min, long max) {
int tmp = Math.abs((int) (max - min));
if (tmp < 0) {
return null;
} else if (tmp == 0) {
return min;
} else {
return random.nextInt(tmp + 1) + m