diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-02-29 09:01:16 -0500 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-02-29 09:01:16 -0500 |
| commit | c732b309a14696f60100440871c90789d443ad24 (patch) | |
| tree | ec83783687c44e6fbb6d367b15e1c43cee75f38c /BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java | |
| parent | a5f6bd475293d72e040a2dbb92eb145e47c09fe5 (diff) | |
Changed interface of GenHolder
GenHolder now has a proper interface with no public fields
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java index 4b0c276..649a240 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java +++ b/BJC-Utils2/src/main/java/bjc/utils/gen/WeightedRandom.java @@ -72,17 +72,18 @@ public class WeightedRandom<E> { GenHolder<Boolean> bl = new GenHolder<>(true); probs.forEachIndexed((i, p) -> { - if (bl.held) { - if (v.held < p) { - res.held = results.getByIndex(i); - bl.held = false; + if (bl.unwrap(vl -> vl)) { + if (v.unwrap((vl) -> vl < p)) { + res.transform((vl) -> results.getByIndex(i)); + + bl.transform((vl) -> false); } else { - v.held -= p; + v.transform((vl) -> vl - p); } } }); - return res.held; + return res.unwrap((vl) -> vl); } /** |
