Apache Commons中现在有一个用于此的类:
EnumeratedDistribution
Item selectedItem = new EnumeratedDistribution<>(itemWeights).sample();
这里
itemWeights是
List<Pair<Item, Double>>,像(假设Item接口阿恩的答案):
final List<Pair<Item, Double>> itemWeights = Collections.newArrayList();for (Item i: itemSet) { itemWeights.add(new Pair(i, i.getWeight()));}
或在Java 8中:
itemSet.stream().map(i -> new Pair(i, i.getWeight())).collect(toList());
注意:
Pair这里需要是
org.apache.commons.math3.util.Pair,不是
org.apache.commons.lang3.tuple.Pair。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)