From cc5fa2539c66db5bb989f3f92a12c59a9adedddd Mon Sep 17 00:00:00 2001 From: lainio24 Date: Tue, 21 Jun 2022 09:33:52 +0800 Subject: [PATCH] perf(utils): remove redundant validations in RandomUtils --- .../mcmod/arnicalib/utils/java/RandomUtils.java | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/auioc/mcmod/arnicalib/utils/java/RandomUtils.java b/src/main/java/org/auioc/mcmod/arnicalib/utils/java/RandomUtils.java index 9c15feda..ea9d1858 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/utils/java/RandomUtils.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/utils/java/RandomUtils.java @@ -8,6 +8,8 @@ public class RandomUtils extends org.apache.commons.lang3.RandomUtils { + public static final Random RANDOM = new Random(); + /*================================================================================================================*/ // #region PickFromCollection @@ -15,7 +17,7 @@ public static T pickOneFromCollection(Collection collection) { Validate.notEmpty(collection, "The collection must be not empty"); int size = collection.size(); - int target = nextInt(0, size); + int target = RANDOM.nextInt(size); Iterator iterator = collection.iterator(); for (int i = 0; i < target; i++) { iterator.next(); @@ -40,13 +42,13 @@ public static List pickFromList(List list, int N) { List newList = new ArrayList(); if (N == 1) { - newList.add(list.get(nextInt(0, size))); + newList.add(list.get(RANDOM.nextInt(size))); } else { List targets = new ArrayList(); for (int i = 0; i < N; i++) { int target; while (true) { - target = nextInt(0, size); + target = RANDOM.nextInt(size); if (!targets.contains(target)) { targets.add(target); break; @@ -61,7 +63,7 @@ public static List pickFromList(List list, int N) { public static T pickOneFromList(List list) { Validate.notEmpty(list, "The list must be not empty"); - return list.get(nextInt(0, list.size())); + return list.get(RANDOM.nextInt(list.size())); } // #endregion PickFromCollection @@ -71,7 +73,7 @@ public static T pickOneFromList(List list) { public static boolean percentageChance(int chance) { Validate.isInCloseInterval(0, 100, chance); - return nextInt(0, 100) < chance; + return RANDOM.nextInt(100) < chance; } public static boolean percentageChance(int chance, Random random) { @@ -81,7 +83,7 @@ public static boolean percentageChance(int chance, Random random) { public static boolean fractionChance(int denominator) { Validate.isPositive(denominator); - return nextInt(0, denominator) == 0; + return RANDOM.nextInt(denominator) == 0; } public static boolean fractionChance(int denominator, Random random) { @@ -91,7 +93,7 @@ public static boolean fractionChance(int denominator, Random random) { public static boolean fractionChance(int numerator, int denominator) { Validate.isFractionChance(numerator, denominator); - return nextInt(0, denominator) < numerator; + return RANDOM.nextInt(denominator) < numerator; } public static boolean fractionChance(int numerator, int denominator, Random random) {