ArrayUtil class

Пакет: com.hypixel.hytale.builtin.hytalegenerator

Файл: com/hypixel/hytale/builtin/hytalegenerator/ArrayUtil.java

Поля (19)

МодификаторыТипИмя
Object[] var1
Object[] var2
List var2
int[] var2
int var3
int var3
int var3
int var3
var3
int[] var4
int var4
int var4
var4
int var5
int var5
Object var6
int var7
int var7
List var8

Методы (26)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("arrays must have the same size")
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("parts must be greater than 0")
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("total and/or parts must be greater than 0")
static <T, G> int binarySearch<T, G> int binarySearch(@Nonnull List<T> var0, @Nonnull G var1, @Nonnull BiFunction<G, T, Integer> var2)
abstract return binarySearchreturn binarySearch(var0, var1, var2)
static <T> void copy<T> void copy(@Nonnull T[] var0, @Nonnull T[] var1)
for for(int var10 = 0; var10 < var3; var10++)
for for(int var11 = var3; var11 < var1; var11++)
for for(int var6 = 0; var6 < var1; var6++)
for for(int var9 = 0; var9 < var7; var9++)
for for(int var5 = 0; var5 < var1; var5++)
abstract for for(int var4 = 0; var4 < var0.size()
static int[] getPartSizesint[] getPartSizes(int var0, int var1)
if if(var0.length != var1.length)
if if(var1 < 1)
if if(var1 == 1)
if if(var3 <= var1)
if if(var0 >= 0 && var1 >= 1)
if if(var0 == 0)
if if(var5 < var4)
if if(var7 == 0)
if if(var3 == var4 - 1)
if if(var7 == -1)
if if(var7 == 1)
static <T, G> int sortedSearch<T, G> int sortedSearch(@Nonnull List<T> var0, @Nonnull G var1, @Nonnull BiFunction<G, T, Integer> var2)
while while(true)

Исходный код

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

class="kw">import java.util.ArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import java.util.function.BiFunction;
class="kw">import javax.annotation.Nonnull;

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

   @Nonnull
   class="kw">public class="kw">static <T> T[] brokenCopyOf(@Nonnull T[] var0) {
      Object[] var1 = (T[])(new Object[var0.length]);
      System.arraycopy(var0, 0, var1, 0, var0.length);
      class="kw">return var1;
   }

   class="kw">public class="kw">static <T> void copy(@Nonnull T[] var0, @Nonnull T[] var1) {
      if (var0.length != var1.length) {
         throw new IllegalArgumentException("arrays must have the same size");
      }

      System.arraycopy(var0, 0, var1, 0, var0.length);
   }

   @Nonnull
   class="kw">public class="kw">static <T> T[] append(@Nonnull T[] var0, T var1) {
      Object[] var2 = (T[])(new Object[var0.length + 1]);
      System.arraycopy(var0, 0, var2, 0, var0.length);
      var2[var0.length] = var1;
      class="kw">return var2;
   }

   @Nonnull
   class="kw">public class="kw">static <T> List<List<T>> split(@Nonnull List<T> var0, int var1) {
      if (var1 < 1) {
         throw new IllegalArgumentException("parts must be greater than 0");
      }

      if (var1 == 1) {
         class="kw">return Collections.singletonList(var0);
      }

      List var2 = new ArrayList<>(var1);
      int var3 = var0.size();
      if (var3 <= var1) {
         for (int var10 = 0; var10 < var3; var10++) {
            var2.add(List.of(var0.get(var10)));
         }

         for (int var11 = var3; var11 < var1; var11++) {
            var2.add(List.of());
         }

         class="kw">return Collections.unmodifiableList(var2);
      } else {
         int[] var4 = getPartSizes(var3, var1);
         int var5 = 0;

         for (int var6 = 0; var6 < var1; var6++) {
            int var7 = var4[var6];
            List var8 = new ArrayList<>(var7);

            for (int var9 = 0; var9 < var7; var9++) {
               var8.add(var0.get(var5++));
            }

            var2.add(var8);
         }

         class="kw">return Collections.unmodifiableList(var2);
      }
   }

   class="kw">public class="kw">static int[] getPartSizes(int var0, int var1) {
      if (var0 >= 0 && var1 >= 1) {
         if (var0 == 0) {
            class="kw">return new int[]{var0};
         }

         int[] var2 = new int[var1];
         int var3 = var0 / var1;
         int var4 = var0 % var1;

         for (int var5 = 0; var5 < var1; var5++) {
            if (var5 < var4) {
               var2[var5] = var3 + 1;
            } else {
               var2[var5] = var3;
            }
         }

         class="kw">return var2;
      } else {
         throw new IllegalArgumentException("total and/or parts must be greater than 0");
      }
   }

   class="kw">public class="kw">static <T, G> int sortedSearch(@Nonnull List<T> var0, @Nonnull G var1, @Nonnull BiFunction<G, T, Integer> var2) {
      int var3 = 250;
      if (var0.isEmpty()) {
         class="kw">return -1;
      }

      if (var0.size() == 1) {
         class="kw">return var2.apply(var1, var0.getFirst()) == 0 ? 0 : -1;
      }

      if (var0.size() <= 250) {
         for (int var4 = 0; var4 < var0.size(); var4++) {
            if (var2.apply(var1, var0.get(var4)) == 0) {
               class="kw">return var4;
            }
         }

         class="kw">return -1;
      } else {
         class="kw">return binarySearch(var0, var1, var2);
      }
   }

   class="kw">public class="kw">static <T, G> int binarySearch(@Nonnull List<T> var0, @Nonnull G var1, @Nonnull BiFunction<G, T, Integer> var2) {
      if (var0.isEmpty()) {
         class="kw">return -1;
      }

      int var3 = 0;
      int var4 = var0.size();

      while (true) {
         int var5 = (var4 + var3) / 2;
         Object var6 = var0.get(var5);
         int var7 = var2.apply(var1, var6);
         if (var7 == 0) {
            class="kw">return var5;
         }

         if (var3 == var4 - 1) {
            class="kw">return -1;
         }

         if (var7 == -1) {
            var4 = var5;
         }

         if (var7 == 1) {
            var3 = var5;
         }
      }
   }
}