DynamicArray class

Пакет: com.hypixel.hytale.builtin.adventure.worldevents.util

Файл: com/hypixel/hytale/builtin/adventure/worldevents/util/DynamicArray.java

Поля (4)

МодификаторыТипИмя
protected int size
int var2
Object[] var3
int var4

Методы (7)

МодификаторыВозвратСигнатура
public void addvoid add(@Nonnull T var1)
public void clearvoid clear()
if if(this.size + 1 >= this.array.length)
if if(var2 != this.array.length)
public int lengthint length()
public void resizevoid resize(int var1)
public int sizeint size()

Исходный код

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

class="kw">import com.hypixel.hytale.common.util.ArrayUtil;
class="kw">import java.util.Arrays;
class="kw">import java.util.function.IntFunction;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import javax.annotation.concurrent.NotThreadSafe;

@NotThreadSafe
class="kw">public class DynamicArray<T> {
   class="kw">protected int size = 0;
   @Nonnull
   class="kw">protected T[] array;
   @Nonnull
   class="kw">protected class="kw">final IntFunction<T[]> allocator;

   class="kw">public DynamicArray(int var1, @Nonnull IntFunction<T[]> var2) {
      this.allocator = var2;
      this.array = (T[])((Object[])var2.apply(var1));
   }

   class="kw">public int size() {
      class="kw">return this.size;
   }

   class="kw">public int length() {
      class="kw">return this.array.length;
   }

   @Nonnull
   class="kw">public T[] array() {
      class="kw">return this.array;
   }

   class="kw">public void clear() {
      Arrays.fill(this.array, null);
      this.size = 0;
   }

   @Nullable
   class="kw">public T get(int var1) {
      class="kw">return this.array[var1];
   }

   class="kw">public void add(@Nonnull T var1) {
      if (this.size + 1 >= this.array.length) {
         this.resize(this.size);
      }

      this.array[this.size] = var1;
      this.size++;
   }

   class="kw">public void resize(int var1) {
      int var2 = ArrayUtil.grow(var1);
      if (var2 != this.array.length) {
         Object[] var3 = (T[])((Object[])this.allocator.apply(var2));
         int var4 = Math.min(this.array.length, var3.length);
         System.arraycopy(this.array, 0, var3, 0, var4);
         this.array = var3;
         this.size = Math.min(this.size, var4);
      }
   }
}