diff options
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/gen')
| -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); } /** |
