
name.remal.PrimitiveArrayConverters Maven / Gradle / Ivy
package name.remal;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.jetbrains.annotations.Contract;
import static java.lang.Math.toIntExact;
public class PrimitiveArrayConverters {
private static final int[] EMPTY_INT_ARRAY = new int[0];
@Nonnull
@Contract(pure = true)
public static int[] toIntArray(@Nonnull byte[] array) {
if (0 == array.length) return EMPTY_INT_ARRAY;
int[] result = new int[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (int) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static int[] toIntArray(@Nonnull double[] array) {
if (0 == array.length) return EMPTY_INT_ARRAY;
int[] result = new int[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = toIntExact((long) array[i]);
}
return result;
}
@Nonnull
@Contract(pure = true)
public static int[] toIntArray(@Nonnull float[] array) {
if (0 == array.length) return EMPTY_INT_ARRAY;
int[] result = new int[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (int) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static int[] toIntArray(@Nonnull int[] array) {
return array;
}
@Nonnull
@Contract(pure = true)
public static int[] toIntArray(@Nonnull long[] array) {
if (0 == array.length) return EMPTY_INT_ARRAY;
int[] result = new int[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = toIntExact(array[i]);
}
return result;
}
@Nonnull
@Contract(pure = true)
public static int[] toIntArray(@Nonnull short[] array) {
if (0 == array.length) return EMPTY_INT_ARRAY;
int[] result = new int[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (int) array[i];
}
return result;
}
private static final long[] EMPTY_LONG_ARRAY = new long[0];
@Nonnull
@Contract(pure = true)
public static long[] toLongArray(@Nonnull byte[] array) {
if (0 == array.length) return EMPTY_LONG_ARRAY;
long[] result = new long[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (long) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static long[] toLongArray(@Nonnull double[] array) {
if (0 == array.length) return EMPTY_LONG_ARRAY;
long[] result = new long[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (long) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static long[] toLongArray(@Nonnull float[] array) {
if (0 == array.length) return EMPTY_LONG_ARRAY;
long[] result = new long[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (long) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static long[] toLongArray(@Nonnull int[] array) {
if (0 == array.length) return EMPTY_LONG_ARRAY;
long[] result = new long[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (long) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static long[] toLongArray(@Nonnull long[] array) {
return array;
}
@Nonnull
@Contract(pure = true)
public static long[] toLongArray(@Nonnull short[] array) {
if (0 == array.length) return EMPTY_LONG_ARRAY;
long[] result = new long[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (long) array[i];
}
return result;
}
private static final double[] EMPTY_DOUBLE_ARRAY = new double[0];
@Nonnull
@Contract(pure = true)
public static double[] toDoubleArray(@Nonnull byte[] array) {
if (0 == array.length) return EMPTY_DOUBLE_ARRAY;
double[] result = new double[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (double) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static double[] toDoubleArray(@Nonnull double[] array) {
return array;
}
@Nonnull
@Contract(pure = true)
public static double[] toDoubleArray(@Nonnull float[] array) {
if (0 == array.length) return EMPTY_DOUBLE_ARRAY;
double[] result = new double[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (double) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static double[] toDoubleArray(@Nonnull int[] array) {
if (0 == array.length) return EMPTY_DOUBLE_ARRAY;
double[] result = new double[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (double) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static double[] toDoubleArray(@Nonnull long[] array) {
if (0 == array.length) return EMPTY_DOUBLE_ARRAY;
double[] result = new double[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (double) array[i];
}
return result;
}
@Nonnull
@Contract(pure = true)
public static double[] toDoubleArray(@Nonnull short[] array) {
if (0 == array.length) return EMPTY_DOUBLE_ARRAY;
double[] result = new double[array.length];
for (int i = 0; i < array.length; ++i) {
result[i] = (double) array[i];
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy