ArrayUtil class

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

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

Поля (19)

МодификаторыТипИмя
final String[] EMPTY_STRING_ARRAY
Object[] var2
Object[] var2
int var2
Class var2
byte[][] var2
Object[] var3
Object[] var3
Object[] var3
int var3
Object[][] var3
int var3
int var4
Object var5
int var5
int var5
Object var6
int var6
byte var6

Методы (32)

МодификаторыВозвратСигнатура
static <T> boolean contains<T> boolean contains(@Nonnull T[] var0, @Nullable T var1)
static <T> boolean contains<T> boolean contains(@Nonnull T[] var0, @Nullable T var1, int var2, int var3)
static <StartType, EndType> EndType[] copyAndMutate<StartType, EndType> EndType[] copyAndMutate(@Nullable StartType[] var0, @Nonnull Function<StartType, EndType> var1, @Nonnull IntFunction<EndType[]> var2)
static <T> boolean equals<T> boolean equals(@Nullable T[] var0, @Nullable T[] var1, @Nonnull UnaryBiPredicate<T> var2)
for for(int var4 = 0; var4 < var3.length; var4++)
for for(int var2 = 0; var2 < var1.length; var2++)
for for(int var4 = 0; var4 < var3; var4++)
for for(int var5 = 0; var5 < var3.length; var5++)
for for(int var4 = 0; var4 < var2.length; var4++)
for for(int var4 = var2 - 1; var4 > var1; var4--)
for for(int var4 = var2 - 1; var4 > var1; var4--)
for for(int var4 = var2; var4 < var3; var4++)
for for(int var5 = var2; var5 < var3; var5++)
static int growint grow(int var0)
if if(var0 == null)
if if(var0 == null || var0.length == 0)
if if(var0 == null)
if if(var1 < var2)
if if(var1.length > var0.length)
if if(var0[var2] != var1[var2])
if if(var0 == var1)
if if(var0 != null && var1 != null)
if if(var1.length != var3)
if if(var1 == null)
if if(var0[var4] == null)
static <T> int indexOf<T> int indexOf(@Nonnull T[] var0, @Nullable T var1)
static <T> int indexOf<T> int indexOf(@Nonnull T[] var0, @Nullable T var1, int var2, int var3)
abstract return indexOfreturn indexOf(var0, var1, 0, var0.length)
static void shuffleArrayvoid shuffleArray(@Nonnull int[] var0, int var1, int var2, @Nonnull Random var3)
static void shuffleArrayvoid shuffleArray(@Nonnull byte[] var0, int var1, int var2, @Nonnull Random var3)
static byte[][] splitbyte[][] split(@Nonnull byte[] var0, int var1)
static boolean startsWithboolean startsWith(@Nonnull byte[] var0, @Nonnull byte[] var1)

Исходный код

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

class="kw">import com.hypixel.hytale.function.predicate.UnaryBiPredicate;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import java.lang.reflect.Array;
class="kw">import java.util.Arrays;
class="kw">import java.util.BitSet;
class="kw">import java.util.Objects;
class="kw">import java.util.Random;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.function.Function;
class="kw">import java.util.function.IntFunction;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ArrayUtil {
   class="kw">public class="kw">static class="kw">final String[] EMPTY_STRING_ARRAY = new String[0];
   class="kw">public class="kw">static class="kw">final double[] EMPTY_DOUBLE_ARRAY = new double[0];
   class="kw">public class="kw">static class="kw">final int[] EMPTY_INT_ARRAY = new int[0];
   class="kw">public class="kw">static class="kw">final long[] EMPTY_LONG_ARRAY = new long[0];
   class="kw">public class="kw">static class="kw">final boolean[] EMPTY_BOOLEAN_ARRAY = new boolean[0];
   class="kw">public class="kw">static class="kw">final Integer[] EMPTY_INTEGER_ARRAY = new Integer[0];
   class="kw">public class="kw">static class="kw">final byte[] EMPTY_BYTE_ARRAY = new byte[0];
   class="kw">public class="kw">static class="kw">final BitSet[] EMPTY_BITSET_ARRAY = new BitSet[0];
   class="kw">public class="kw">static class="kw">final float[] EMPTY_FLOAT_ARRAY = new float[0];
   class="kw">private class="kw">static class="kw">final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
   class="kw">private class="kw">static class="kw">final Supplier[] EMPTY_SUPPLIER_ARRAY = new Supplier[0];
   class="kw">private class="kw">static class="kw">final Entry[] EMPTY_ENTRY_ARRAY = new Entry[0];

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

   @Nonnull
   class="kw">public class="kw">static <T> T[] emptyArray() {
      class="kw">return (T[])EMPTY_OBJECT_ARRAY;
   }

   @Nonnull
   class="kw">public class="kw">static <T> Supplier<T>[] emptySupplierArray() {
      class="kw">return EMPTY_SUPPLIER_ARRAY;
   }

   @Nonnull
   class="kw">public class="kw">static <K, V> Entry<K, V>[] emptyEntryArray() {
      class="kw">return EMPTY_ENTRY_ARRAY;
   }

   class="kw">public class="kw">static int grow(int var0) {
      class="kw">return (int)MathUtil.clamp((long)var0 + (var0 >> 1), 2L, 2147483639L);
   }

   class="kw">public class="kw">static <StartType, EndType> EndType[] copyAndMutate(
      @Nullable StartType[] var0, @Nonnull Function<StartType, EndType> var1, @Nonnull IntFunction<EndType[]> var2
   ) {
      if (var0 == null) {
         class="kw">return null;
      }

      Object[] var3 = (EndType[])var2.apply(var0.length);

      for (int var4 = 0; var4 < var3.length; var4++) {
         var3[var4] = var1.apply(var0[var4]);
      }

      class="kw">return var3;
   }

   @Nullable
   class="kw">public class="kw">static <T> T[] combine(@Nullable T[] var0, @Nullable T[] var1) {
      if (var0 == null || var0.length == 0) {
         class="kw">return var1;
      } else if (var1 != null && var1.length != 0) {
         Object[] var2 = (T[])Arrays.copyOf(var0, var0.length + var1.length);
         System.arraycopy(var1, 0, var2, var0.length, var1.length);
         class="kw">return var2;
      } else {
         class="kw">return var0;
      }
   }

   @Nonnull
   class="kw">public class="kw">static <T> T[] append(@Nullable T[] var0, @Nonnull T var1) {
      if (var0 == null) {
         Object[] var3 = (T[])Array.newInstance(var1.getClass(), 1);
         var3[0] = var1;
         class="kw">return var3;
      } else {
         Object[] var2 = (T[])Arrays.copyOf(var0, var0.length + 1);
         var2[var0.length] = var1;
         class="kw">return var2;
      }
   }

   @Nonnull
   class="kw">public class="kw">static <T> T[] remove(@Nonnull T[] var0, int var1) {
      int var2 = var0.length - 1;
      Object[] var3 = (T[])Array.newInstance(var0.getClass().getComponentType(), var2);
      System.arraycopy(var0, 0, var3, 0, var1);
      if (var1 < var2) {
         System.arraycopy(var0, var1 + 1, var3, var1, var2 - var1);
      }

      class="kw">return var3;
   }

   class="kw">public class="kw">static boolean startsWith(@Nonnull byte[] var0, @Nonnull byte[] var1) {
      if (var1.length > var0.length) {
         class="kw">return false;
      }

      for (int var2 = 0; var2 < var1.length; var2++) {
         if (var0[var2] != var1[var2]) {
            class="kw">return false;
         }
      }

      class="kw">return true;
   }

   class="kw">public class="kw">static <T> boolean equals(@Nullable T[] var0, @Nullable T[] var1, @Nonnull UnaryBiPredicate<T> var2) {
      if (var0 == var1) {
         class="kw">return true;
      }

      if (var0 != null && var1 != null) {
         int var3 = var0.length;
         if (var1.length != var3) {
            class="kw">return false;
         }

         for (int var4 = 0; var4 < var3; var4++) {
            Object var5 = var0[var4];
            Object var6 = var1[var4];
            if (var5 == null ? var6 != null : !var2.test(var5, var6)) {
               class="kw">return false;
            }
         }

         class="kw">return true;
      } else {
         class="kw">return false;
      }
   }

   @Nonnull
   class="kw">public class="kw">static <T> T[][] split(@Nonnull T[] var0, int var1) {
      Class var2 = (Class<? class="kw">extends T[]>)var0.getClass();
      Object[][] var3 = (T[][])Array.newInstance(var2.getComponentType(), MathUtil.ceil((double)var0.length / var1), 0);
      int var4 = 0;

      for (int var5 = 0; var5 < var3.length; var5++) {
         var3[var5] = (T[])Arrays.copyOfRange(var0, var4, Math.min(var4 + var1, var0.length));
         var4 += var1;
      }

      class="kw">return var3;
   }

   class="kw">public class="kw">static byte[][] split(@Nonnull byte[] var0, int var1) {
      byte[][] var2 = new byte[MathUtil.ceil((double)var0.length / var1)][];
      int var3 = 0;

      for (int var4 = 0; var4 < var2.length; var4++) {
         var2[var4] = Arrays.copyOfRange(var0, var3, Math.min(var3 + var1, var0.length));
         var3 += var1;
      }

      class="kw">return var2;
   }

   class="kw">public class="kw">static void shuffleArray(@Nonnull int[] var0, int var1, int var2, @Nonnull Random var3) {
      Objects.checkFromToIndex(var1, var2, var0.length);

      for (int var4 = var2 - 1; var4 > var1; var4--) {
         int var5 = var3.nextInt(var4 + 1 - var1) + var1;
         int var6 = var0[var5];
         var0[var5] = var0[var4];
         var0[var4] = var6;
      }
   }

   class="kw">public class="kw">static void shuffleArray(@Nonnull byte[] var0, int var1, int var2, @Nonnull Random var3) {
      Objects.checkFromToIndex(var1, var2, var0.length);

      for (int var4 = var2 - 1; var4 > var1; var4--) {
         int var5 = var3.nextInt(var4 + 1 - var1) + var1;
         byte var6 = var0[var5];
         var0[var5] = var0[var4];
         var0[var4] = var6;
      }
   }

   class="kw">public class="kw">static <T> boolean contains(@Nonnull T[] var0, @Nullable T var1) {
      class="kw">return indexOf(var0, var1) >= 0;
   }

   class="kw">public class="kw">static <T> boolean contains(@Nonnull T[] var0, @Nullable T var1, int var2, int var3) {
      class="kw">return indexOf(var0, var1, var2, var3) >= 0;
   }

   class="kw">public class="kw">static <T> int indexOf(@Nonnull T[] var0, @Nullable T var1) {
      class="kw">return indexOf(var0, var1, 0, var0.length);
   }

   class="kw">public class="kw">static <T> int indexOf(@Nonnull T[] var0, @Nullable T var1, int var2, int var3) {
      if (var1 == null) {
         for (int var4 = var2; var4 < var3; var4++) {
            if (var0[var4] == null) {
               class="kw">return var4;
            }
         }
      } else {
         for (int var5 = var2; var5 < var3; var5++) {
            if (var1.equals(var0[var5])) {
               class="kw">return var5;
            }
         }
      }

      class="kw">return -1;
   }
}