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);
}
}
}