BucketItemPool class

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

Файл: com/hypixel/hytale/common/collection/BucketItemPool.java

Поля (2)

МодификаторыТипИмя
int var3
BucketItem var4

Методы (4)

МодификаторыВозвратСигнатура
public BucketItem<E> allocateBucketItem<E> allocate(E var1, double var2)
public void deallocatevoid deallocate(BucketItem<E>[] var1, int var2)
if if(var3 > this.pool.length)
if if(this.size == 0)

Исходный код

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

class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;

class="kw">public class BucketItemPool<E> {
   @Nonnull
   class="kw">protected BucketItem<E>[] pool = new BucketItem[16];
   class="kw">protected int size;

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

   class="kw">public void deallocate(BucketItem<E>[] var1, int var2) {
      int var3 = this.size + var2;
      if (var3 > this.pool.length) {
         this.pool = Arrays.copyOf(this.pool, Math.max(var3, this.pool.length << 1));
      }

      System.arraycopy(var1, 0, this.pool, this.size, var2);
      this.size += var2;
   }

   class="kw">public BucketItem<E> allocate(E var1, double var2) {
      if (this.size == 0) {
         class="kw">return new BucketItem<E>().set(var1, var2);
      }

      BucketItem var4 = this.pool[--this.size];
      this.pool[this.size] = null;
      class="kw">return var4.set(var1, var2);
   }
}