RandomUtil class

Пакет: com.hypixel.hytale.common.util

Файл: com/hypixel/hytale/common/util/RandomUtil.java

Поля (8)

МодификаторыТипИмя
final ThreadLocal<SecureRandom> SECURE_RANDOM
int var2
int var3
int var3
int var4
int var4
int var6
int var6

Методы (16)

МодификаторыВозвратСигнатура
for for(int var5 = 0; var5 < var2.length; var5++)
for for(int var5 = 0; var5 < var2.length; var5++)
static SecureRandom getSecureRandomSecureRandom getSecureRandom()
if if(var0 > var3 && var0 <= var4)
if if(var0 > var3 && var0 <= var4)
if if(var0 == null)
if if(var0 == null)
if if(var0 == null)
static double randomDoubledouble randomDouble(@Nullable Double var0, @Nullable Double var1, double var2, @Nonnull RandomGenerator var4)
static float randomFloatfloat randomFloat(@Nullable Float var0, @Nullable Float var1, float var2, @Nonnull RandomGenerator var3)
static int randomIntegerint randomInteger(@Nullable Integer var0, @Nullable Integer var1, int var2, @Nonnull RandomGenerator var3)
static <T> T roll<T> T roll(int var0, T[] var1, @Nonnull int[] var2)
static int rollIntint rollInt(int var0, int[] var1, @Nonnull int[] var2)
static <T> T selectRandom<T> T selectRandom(@Nonnull T[] var0, @Nonnull Random var1)
static <T> T selectRandom<T> T selectRandom(@Nonnull List<? extends T> var0)
static <T> T selectRandom<T> T selectRandom(@Nonnull List<? extends T> var0, @Nonnull Random var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.common.util;

class="kw">import java.security.SecureRandom;
class="kw">import java.util.Arrays;
class="kw">import java.util.List;
class="kw">import java.util.Random;
class="kw">import java.util.concurrent.ThreadLocalRandom;
class="kw">import java.util.random.RandomGenerator;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class RandomUtil {
   class="kw">public class="kw">static class="kw">final ThreadLocal<SecureRandom> SECURE_RANDOM = ThreadLocal.withInitial(SecureRandom::new);

   class="kw">public RandomUtil() {
   }

   class="kw">public class="kw">static <T> T roll(int var0, T[] var1, @Nonnull int[] var2) {
      var0++;
      int var3 = 0;
      int var4 = 0;

      for (int var5 = 0; var5 < var2.length; var5++) {
         int var6 = var2[var5];
         var4 += var6;
         if (var0 > var3 && var0 <= var4) {
            class="kw">return var1[var5];
         }

         var3 += var6;
      }

      throw new AssertionError("Reached end of roll(" + var0 + ", " + Arrays.toString(var1) + ", " + Arrays.toString(var2) + ")!");
   }

   class="kw">public class="kw">static int rollInt(int var0, int[] var1, @Nonnull int[] var2) {
      var0++;
      int var3 = 0;
      int var4 = 0;

      for (int var5 = 0; var5 < var2.length; var5++) {
         int var6 = var2[var5];
         var4 += var6;
         if (var0 > var3 && var0 <= var4) {
            class="kw">return var1[var5];
         }

         var3 += var6;
      }

      throw new AssertionError("Reached end of roll(" + var0 + ", " + Arrays.toString(var1) + ", " + Arrays.toString(var2) + ")!");
   }

   class="kw">public class="kw">static SecureRandom getSecureRandom() {
      class="kw">return SECURE_RANDOM.get();
   }

   class="kw">public class="kw">static <T> T selectRandom(@Nonnull T[] var0, @Nonnull Random var1) {
      class="kw">return var0[var1.nextInt(var0.length)];
   }

   @Nullable
   class="kw">public class="kw">static <T> T selectRandomOrNull(@Nonnull T[] var0, @Nonnull Random var1) {
      int var2 = var1.nextInt(var0.length + 1);
      class="kw">return var2 == var0.length ? null : var0[var2];
   }

   @Nonnull
   class="kw">public class="kw">static <T> T selectRandomOrDefault(@Nonnull T[] var0, @Nonnull T var1, @Nonnull Random var2) {
      class="kw">return var0.length > 0 ? var0[var2.nextInt(var0.length)] : var1;
   }

   class="kw">public class="kw">static <T> T selectRandom(@Nonnull List<? class="kw">extends T> var0) {
      class="kw">return selectRandom(var0, ThreadLocalRandom.current());
   }

   class="kw">public class="kw">static <T> T selectRandom(@Nonnull List<? class="kw">extends T> var0, @Nonnull Random var1) {
      class="kw">return (T)var0.get(var1.nextInt(var0.size()));
   }

   class="kw">public class="kw">static int randomInteger(@Nullable Integer var0, @Nullable Integer var1, int var2, @Nonnull RandomGenerator var3) {
      if (var0 == null) {
         class="kw">return var2;
      } else if (var1 == null) {
         class="kw">return var2;
      } else {
         class="kw">return var1 <= var0 ? var1 : var3.nextInt(var0, var1);
      }
   }

   class="kw">public class="kw">static float randomFloat(@Nullable Float var0, @Nullable Float var1, float var2, @Nonnull RandomGenerator var3) {
      if (var0 == null) {
         class="kw">return var2;
      } else if (var1 == null) {
         class="kw">return var2;
      } else {
         class="kw">return var1 <= var0 ? var1 : var3.nextFloat(var0, var1);
      }
   }

   class="kw">public class="kw">static double randomDouble(@Nullable Double var0, @Nullable Double var1, double var2, @Nonnull RandomGenerator var4) {
      if (var0 == null) {
         class="kw">return var2;
      } else if (var1 == null) {
         class="kw">return var2;
      } else {
         class="kw">return var1 <= var0 ? var1 : var4.nextDouble(var0, var1);
      }
   }
}