Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
jetbrick.util.ArrayUtils Maven / Gradle / Ivy
/**
* Copyright 2013-2016 Guoqiang Chen, Shanghai, China. All rights reserved.
*
* Author: Guoqiang Chen
* Email: [email protected]
* WebURL: https://github.com/subchen
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package jetbrick.util;
import java.io.File;
import java.net.URL;
import java.util.Arrays;
import java.util.Date;
public final class ArrayUtils {
public static final boolean[] EMPTY_BOOLEAN_ARRAY = new boolean[0];
public static final char[] EMPTY_CHAR_ARRAY = new char[0];
public static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
public static final short[] EMPTY_SHORT_ARRAY = new short[0];
public static final int[] EMPTY_INT_ARRAY = new int[0];
public static final long[] EMPTY_LONG_ARRAY = new long[0];
public static final float[] EMPTY_FLOAT_ARRAY = new float[0];
public static final double[] EMPTY_DOUBLE_ARRAY = new double[0];
public static final Boolean[] EMPTY_BOOLEAN_OBJECT_ARRAY = new Boolean[0];
public static final Character[] EMPTY_CHARACTER_OBJECT_ARRAY = new Character[0];
public static final Byte[] EMPTY_BYTE_OBJECT_ARRAY = new Byte[0];
public static final Short[] EMPTY_SHORT_OBJECT_ARRAY = new Short[0];
public static final Integer[] EMPTY_INTEGER_OBJECT_ARRAY = new Integer[0];
public static final Long[] EMPTY_LONG_OBJECT_ARRAY = new Long[0];
public static final Float[] EMPTY_FLOAT_OBJECT_ARRAY = new Float[0];
public static final Double[] EMPTY_DOUBLE_OBJECT_ARRAY = new Double[0];
public static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];
public static final String[] EMPTY_STRING_ARRAY = new String[0];
public static final Class>[] EMPTY_CLASS_ARRAY = new Class[0];
public static final Date[] EMPTY_DATE_ARRAY = new Date[0];
public static final java.sql.Date[] EMPTY_SQL_DATE_ARRAY = new java.sql.Date[0];
public static final java.sql.Time[] EMPTY_SQL_TIME_ARRAY = new java.sql.Time[0];
public static final java.sql.Timestamp[] EMPTY_SQL_TIMESTAMP_ARRAY = new java.sql.Timestamp[0];
public static final File[] EMPTY_FILE_ARRAY = new File[0];
public static final URL[] EMPTY_URL_ARRAY = new URL[0];
public static final int INDEX_NOT_FOUND = -1;
public static boolean contains(boolean[] array, boolean valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(byte[] array, byte valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(char[] array, char valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(double[] array, double valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(double[] array, double valueToFind, double tolerance) {
return indexOf(array, valueToFind, 0, tolerance) != -1;
}
public static boolean contains(float[] array, float valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(int[] array, int valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(long[] array, long valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static boolean contains(Object[] array, Object objectToFind) {
return indexOf(array, objectToFind) != -1;
}
public static boolean contains(short[] array, short valueToFind) {
return indexOf(array, valueToFind) != -1;
}
public static int indexOf(boolean[] array, boolean valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(boolean[] array, boolean valueToFind, int startIndex) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(byte[] array, byte valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(byte[] array, byte valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(char[] array, char valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(char[] array, char valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(double[] array, double valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(double[] array, double valueToFind, double tolerance) {
return indexOf(array, valueToFind, 0, tolerance);
}
public static int indexOf(double[] array, double valueToFind, int startIndex) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(double[] array, double valueToFind, int startIndex, double tolerance) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
double min = valueToFind - tolerance;
double max = valueToFind + tolerance;
for (int i = startIndex; i < array.length; i++) {
if ((array[i] >= min) && (array[i] <= max)) {
return i;
}
}
return -1;
}
public static int indexOf(float[] array, float valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(float[] array, float valueToFind, int startIndex) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(int[] array, int valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(int[] array, int valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(long[] array, long valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(long[] array, long valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int indexOf(Object[] array, Object objectToFind) {
return indexOf(array, objectToFind, 0);
}
public static int indexOf(Object[] array, Object objectToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
if (objectToFind == null) {
for (int i = startIndex; i < array.length; i++) {
if (array[i] == null) return i;
}
} else if (array.getClass().getComponentType().isInstance(objectToFind)) {
for (int i = startIndex; i < array.length; i++) {
if (objectToFind.equals(array[i])) {
return i;
}
}
}
return -1;
}
public static int indexOf(short[] array, short valueToFind) {
return indexOf(array, valueToFind, 0);
}
public static int indexOf(short[] array, short valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) {
startIndex = 0;
}
for (int i = startIndex; i < array.length; i++) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(boolean[] array, boolean valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(boolean[] array, boolean valueToFind, int startIndex) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(byte[] array, byte valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(byte[] array, byte valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(char[] array, char valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(char[] array, char valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(double[] array, double valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(double[] array, double valueToFind, double tolerance) {
return lastIndexOf(array, valueToFind, 2147483647, tolerance);
}
public static int lastIndexOf(double[] array, double valueToFind, int startIndex) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(double[] array, double valueToFind, int startIndex, double tolerance) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
double min = valueToFind - tolerance;
double max = valueToFind + tolerance;
for (int i = startIndex; i >= 0; i--) {
if ((array[i] >= min) && (array[i] <= max)) {
return i;
}
}
return -1;
}
public static int lastIndexOf(float[] array, float valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(float[] array, float valueToFind, int startIndex) {
if (array == null || array.length == 0) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(int[] array, int valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(int[] array, int valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(long[] array, long valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(long[] array, long valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static int lastIndexOf(Object[] array, Object objectToFind) {
return lastIndexOf(array, objectToFind, 2147483647);
}
public static int lastIndexOf(Object[] array, Object objectToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
if (objectToFind == null) {
for (int i = startIndex; i >= 0; i--) {
if (array[i] == null) return i;
}
} else if (array.getClass().getComponentType().isInstance(objectToFind)) {
for (int i = startIndex; i >= 0; i--) {
if (objectToFind.equals(array[i])) {
return i;
}
}
}
return -1;
}
public static int lastIndexOf(short[] array, short valueToFind) {
return lastIndexOf(array, valueToFind, 2147483647);
}
public static int lastIndexOf(short[] array, short valueToFind, int startIndex) {
if (array == null) {
return -1;
}
if (startIndex < 0) return -1;
if (startIndex >= array.length) {
startIndex = array.length - 1;
}
for (int i = startIndex; i >= 0; i--) {
if (valueToFind == array[i]) {
return i;
}
}
return -1;
}
public static Boolean[] toObject(boolean[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_BOOLEAN_OBJECT_ARRAY;
}
Boolean[] result = new Boolean[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Boolean.valueOf(array[i]);
}
return result;
}
public static Byte[] toObject(byte[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_BYTE_OBJECT_ARRAY;
}
Byte[] result = new Byte[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Byte.valueOf(array[i]);
}
return result;
}
public static Character[] toObject(char[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_CHARACTER_OBJECT_ARRAY;
}
Character[] result = new Character[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Character.valueOf(array[i]);
}
return result;
}
public static Double[] toObject(double[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_DOUBLE_OBJECT_ARRAY;
}
Double[] result = new Double[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Double.valueOf(array[i]);
}
return result;
}
public static Float[] toObject(float[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_FLOAT_OBJECT_ARRAY;
}
Float[] result = new Float[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Float.valueOf(array[i]);
}
return result;
}
public static Integer[] toObject(int[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_INTEGER_OBJECT_ARRAY;
}
Integer[] result = new Integer[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Integer.valueOf(array[i]);
}
return result;
}
public static Long[] toObject(long[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_LONG_OBJECT_ARRAY;
}
Long[] result = new Long[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Long.valueOf(array[i]);
}
return result;
}
public static Short[] toObject(short[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_SHORT_OBJECT_ARRAY;
}
Short[] result = new Short[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = Short.valueOf(array[i]);
}
return result;
}
public static boolean[] toPrimitive(Boolean[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_BOOLEAN_ARRAY;
}
boolean[] result = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].booleanValue();
}
return result;
}
public static boolean[] toPrimitive(Boolean[] array, boolean valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_BOOLEAN_ARRAY;
}
boolean[] result = new boolean[array.length];
for (int i = 0; i < array.length; i++) {
Boolean b = array[i];
result[i] = (b == null ? valueForNull : b.booleanValue());
}
return result;
}
public static byte[] toPrimitive(Byte[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_BYTE_ARRAY;
}
byte[] result = new byte[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].byteValue();
}
return result;
}
public static byte[] toPrimitive(Byte[] array, byte valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_BYTE_ARRAY;
}
byte[] result = new byte[array.length];
for (int i = 0; i < array.length; i++) {
Byte b = array[i];
result[i] = (b == null ? valueForNull : b.byteValue());
}
return result;
}
public static char[] toPrimitive(Character[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_CHAR_ARRAY;
}
char[] result = new char[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].charValue();
}
return result;
}
public static char[] toPrimitive(Character[] array, char valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_CHAR_ARRAY;
}
char[] result = new char[array.length];
for (int i = 0; i < array.length; i++) {
Character b = array[i];
result[i] = (b == null ? valueForNull : b.charValue());
}
return result;
}
public static double[] toPrimitive(Double[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_DOUBLE_ARRAY;
}
double[] result = new double[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].doubleValue();
}
return result;
}
public static double[] toPrimitive(Double[] array, double valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_DOUBLE_ARRAY;
}
double[] result = new double[array.length];
for (int i = 0; i < array.length; i++) {
Double b = array[i];
result[i] = (b == null ? valueForNull : b.doubleValue());
}
return result;
}
public static float[] toPrimitive(Float[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_FLOAT_ARRAY;
}
float[] result = new float[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].floatValue();
}
return result;
}
public static float[] toPrimitive(Float[] array, float valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_FLOAT_ARRAY;
}
float[] result = new float[array.length];
for (int i = 0; i < array.length; i++) {
Float b = array[i];
result[i] = (b == null ? valueForNull : b.floatValue());
}
return result;
}
public static int[] toPrimitive(Integer[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_INT_ARRAY;
}
int[] result = new int[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].intValue();
}
return result;
}
public static int[] toPrimitive(Integer[] array, int valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_INT_ARRAY;
}
int[] result = new int[array.length];
for (int i = 0; i < array.length; i++) {
Integer b = array[i];
result[i] = (b == null ? valueForNull : b.intValue());
}
return result;
}
public static long[] toPrimitive(Long[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_LONG_ARRAY;
}
long[] result = new long[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].longValue();
}
return result;
}
public static long[] toPrimitive(Long[] array, long valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_LONG_ARRAY;
}
long[] result = new long[array.length];
for (int i = 0; i < array.length; i++) {
Long b = array[i];
result[i] = (b == null ? valueForNull : b.longValue());
}
return result;
}
public static short[] toPrimitive(Short[] array) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_SHORT_ARRAY;
}
short[] result = new short[array.length];
for (int i = 0; i < array.length; i++) {
result[i] = array[i].shortValue();
}
return result;
}
public static short[] toPrimitive(Short[] array, short valueForNull) {
if (array == null) return null;
if (array.length == 0) {
return EMPTY_SHORT_ARRAY;
}
short[] result = new short[array.length];
for (int i = 0; i < array.length; i++) {
Short b = array[i];
result[i] = (b == null ? valueForNull : b.shortValue());
}
return result;
}
public static String toString(Object array) {
if (array == null) {
return null;
}
Class> type = array.getClass();
if (type.isArray()) {
if (type.getComponentType().isPrimitive()) {
if (type == byte[].class) {
byte[] valueArray = (byte[]) array;
// using default encoding
return new String(valueArray, 0, valueArray.length);
}
if (type == char[].class) {
char[] charArray = (char[]) array;
return new String(charArray);
}
if (type == short[].class) {
return Arrays.toString((short[]) array);
}
if (type == int[].class) {
return Arrays.toString((int[]) array);
}
if (type == long[].class) {
return Arrays.toString((long[]) array);
}
if (type == float[].class) {
return Arrays.toString((float[]) array);
}
if (type == double[].class) {
return Arrays.toString((double[]) array);
}
if (type == boolean[].class) {
return Arrays.toString((boolean[]) array);
}
} else {
return Arrays.toString((Object[]) array);
}
}
return array.toString();
}
}