欢迎关注Github:https://github.com/teaey/
权重随机在项目中经常用到,所以我把它抽象到一个工具类中。
public abstract class WeightRandom<T> {
public static <T> WeightRandom<T> build(Map<T, Integer> map, Class<? extends WeightRandom> implClazz) {
if (!WeightRandom.class.isAssignableFrom(implClazz)) {
throw new IllegalArgumentException("implClass");
}
try {
Constructor<? extends WeightRandom> constructor = implClazz.getConstructor(Map.class);
WeightRandom weightRandom = constructor.newInstance(map);
weightRandom.init();
return weightRandom;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
protected final Map<T, Integer> data;
prote