diff options
author | TimeConqueror <timeconqueror999@gmail.com> | 2021-08-03 21:03:45 +0300 |
---|---|---|
committer | TimeConqueror <timeconqueror999@gmail.com> | 2021-08-03 21:03:45 +0300 |
commit | 878b9ac656aa21727bcd42e4835d0e7f067983ea (patch) | |
tree | 1dafd4a6fd103d8aefd471815f452b9303a456c4 /src/main/java/gregtech/api/util/extensions/ArrayExt.java | |
parent | 93d5b74820925ecbc8b105d7c1c42be1f2c9d217 (diff) | |
download | GT5-Unofficial-878b9ac656aa21727bcd42e4835d0e7f067983ea.tar.gz GT5-Unofficial-878b9ac656aa21727bcd42e4835d0e7f067983ea.tar.bz2 GT5-Unofficial-878b9ac656aa21727bcd42e4835d0e7f067983ea.zip |
Well, the name 'Arrays' seems to be not so good, since it collides with java.util.Arrays
Diffstat (limited to 'src/main/java/gregtech/api/util/extensions/ArrayExt.java')
-rw-r--r-- | src/main/java/gregtech/api/util/extensions/ArrayExt.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/util/extensions/ArrayExt.java b/src/main/java/gregtech/api/util/extensions/ArrayExt.java new file mode 100644 index 0000000000..faa01cb368 --- /dev/null +++ b/src/main/java/gregtech/api/util/extensions/ArrayExt.java @@ -0,0 +1,59 @@ +package gregtech.api.util.extensions; + +import java.util.function.IntFunction; + +public class ArrayExt { + public static int[] of(int... objects) { + return objects; + } + + public static float[] of(float... objects) { + return objects; + } + + public static double[] of(double... objects) { + return objects; + } + + public static char[] of(char... objects) { + return objects; + } + + public static byte[] of(byte... objects) { + return objects; + } + + public static long[] of(long... objects) { + return objects; + } + + @SafeVarargs + public static <T> T[] of(T... objects) { + return objects; + } + + public static <T> T[] withoutTrailingNulls(T[] array, IntFunction<T[]> arrayFactory) { + int firstNull = -1; + for (int i = 0; i < array.length; i++) { + if (array[i] == null) { + if (firstNull == -1) { + firstNull = i; + } + } else { + firstNull = -1; + } + } + + if (firstNull == -1) { + T[] newArray = arrayFactory.apply(array.length); + System.arraycopy(array, 0, newArray, 0, array.length); + return newArray; + } else if (firstNull == 0) { + return arrayFactory.apply(0); + } else { + T[] newArray = arrayFactory.apply(firstNull); + System.arraycopy(array, 0, newArray, 0, firstNull); + return newArray; + } + } +} |