- java.lang.Object
-
- org.arakhne.afc.util.ArrayUtil
-
public final class ArrayUtil extends Object
Some utilities functions for arrays.- Version:
- 17.0 2020-01-04 14:41:38
- Author:
- Stéphane GALLAND
- Maven Group Id:
- org.arakhne.afc.core
- Maven Artifact Id:
- util
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceArrayUtil.Filter<T>Some utilities functions for arrays.
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <I,T>
T[]castArray(I[] originalArray, Class<T> clazz)Cast the specified array and putnullis the array when the element could not be casted.static <I,O>
O[]castArray(Collection<I> originalArray, Class<O> clazz)Cast the specified array and putnullis the array when the element could not be casted.static <I,O>
O[]castRestrictedArray(I[] originalArray, Class<O> clazz)Cast the specified array and remove the elements that could not be casted.static <I,O>
O[]castRestrictedArray(Collection<I> originalArray, Class<O> clazz)Cast the specified array and remove the elements that could not be casted.static <T> booleancontains(Comparator<T> comparator, T elt, T... array)Replies of the given element is in the sorted array.static <T> booleancontains(T elt, T... array)Replies of the given element is in the array.static <T> booleancontainsAll(T[] elts, T[] array)Replies if the given elements is in the array.static <T> booleancontainsAllObjects(T[] elts, T[] array)Replies of the given element is in the array.static <T> booleancontainsObject(T elt, T[] array)Replies of the given element is in the array.static <T> booleanintersects(T[] elts, T[] array)Replies of one of the given elements is in the array.static Iterator<Boolean>iterator(boolean[] array)Replies a sized iterator on the objects.static Iterator<Byte>iterator(byte[] array)Replies a sized iterator on the objects.static Iterator<Character>iterator(char[] array)Replies a sized iterator on the objects.static Iterator<Double>iterator(double[] array)Replies a sized iterator on the objects.static Iterator<Float>iterator(float[] array)Replies a sized iterator on the objects.static Iterator<Integer>iterator(int[] array)Replies a sized iterator on the objects.static Iterator<Long>iterator(long[] array)Replies a sized iterator on the objects.static Iterator<Short>iterator(short[] array)Replies a sized iterator on the objects.static <T> Iterator<T>iterator(T[] array)Replies a sized iterator on the objects.static <T> T[]merge(Class<T> clazz, T... elements)Merge the elements to make an array.static <T> T[]merge(Class<T> clazz, T[]... arrays)Merge the arrays.static <T> T[]merge(Class<T> clazz, T[] source, T... elements)Merge the elements to make an array.static <T> T[]mergeWithoutNull(Class<T> clazz, T... elements)Merge the elements to make an array.static <T> T[]mergeWithoutNull(Class<T> clazz, T[]... arrays)Merge the arrays.static <T> T[]mergeWithoutNull(Class<T> clazz, T[] source, T... elements)Merge the elements to make an array.static <T> T[]newInstance(Class<T> clazz, int size)Create an instance of array.static <T> T[]removeElements(Class<T> clazz, T[] source, T... toRemove)Remove the given elements from the array.static <T> T[]restrictArray(T[] originalArray, Class<T> clazz, ArrayUtil.Filter<T> comparator)Replies an array in which all the elements must respect the given comparator.static <T> voidreverse(T[] tab)Reverse the specified array.static voidshuffle(boolean[] array)Shuffle the specified array.static voidshuffle(boolean[] array, Random rnd)Shuffle the specified array.static voidshuffle(byte[] array)Shuffle the specified array.static voidshuffle(byte[] array, Random rnd)Shuffle the specified array.static voidshuffle(char[] array)Shuffle the specified array.static voidshuffle(char[] array, Random rnd)Shuffle the specified array.static voidshuffle(double[] array)Shuffle the specified array.static voidshuffle(double[] array, Random rnd)Shuffle the specified array.static voidshuffle(float[] array)Shuffle the specified array.static voidshuffle(float[] array, Random rnd)Shuffle the specified array.static voidshuffle(int[] array)Shuffle the specified array.static voidshuffle(int[] array, Random rnd)Shuffle the specified array.static voidshuffle(long[] array)Shuffle the specified array.static voidshuffle(long[] array, Random rnd)Shuffle the specified array.static <T> voidshuffle(T[] array)Shuffle the specified array.static <T> voidshuffle(T[] array, Random rnd)Shuffle the specified array.static SizedIterator<Boolean>sizedIterator(boolean[] array)Replies a sized iterator on the objects.static SizedIterator<Byte>sizedIterator(byte[] array)Replies a sized iterator on the objects.static SizedIterator<Character>sizedIterator(char[] array)Replies a sized iterator on the objects.static SizedIterator<Double>sizedIterator(double[] array)Replies a sized iterator on the objects.static SizedIterator<Float>sizedIterator(float[] array)Replies a sized iterator on the objects.static SizedIterator<Integer>sizedIterator(int[] array)Replies a sized iterator on the objects.static SizedIterator<Long>sizedIterator(long[] array)Replies a sized iterator on the objects.static SizedIterator<Short>sizedIterator(short[] array)Replies a sized iterator on the objects.static <T> SizedIterator<T>sizedIterator(T[] array)Replies a sized iterator on the objects.static <T> T[]toArray(Collection<? extends T> collection, Class<T> clazz)Replies an array that corresponds to the given collection.static <T> T[]toArrayAndClear(Collection<? extends T> collection, Class<T> clazz)Replies an array that corresponds to the given collection.static StringtoString(Object obj)Replies a string representation of the given object.
-
-
-
Method Detail
-
reverse
public static <T> void reverse(T[] tab)
Reverse the specified array.- Type Parameters:
T- the type of the data in the array.- Parameters:
tab- the array.
-
toArray
@Pure public static <T> T[] toArray(Collection<? extends T> collection, Class<T> clazz)
Replies an array that corresponds to the given collection.- Type Parameters:
T- is the type of the elements.- Parameters:
collection- is the collection to translateclazz- is the type of the elements.- Returns:
- the array.
-
toArrayAndClear
public static <T> T[] toArrayAndClear(Collection<? extends T> collection, Class<T> clazz)
Replies an array that corresponds to the given collection.This function clear the content of the given collection.
- Type Parameters:
T- is the type of the elements.- Parameters:
collection- is the collection to translateclazz- is the type of the elements.- Returns:
- the array.
-
merge
@Pure public static <T> T[] merge(Class<T> clazz, T[]... arrays)
Merge the arrays.This function does not remove the
nullvalues.- Type Parameters:
T- is the type of the elements.- Parameters:
clazz- is the type of the elements.arrays- are the arrays to merge.- Returns:
- the array.
-
merge
@Pure public static <T> T[] merge(Class<T> clazz, T... elements)
Merge the elements to make an array.This function does not remove the
nullvalues.- Type Parameters:
T- is the type of the elements.- Parameters:
clazz- is the type of the elements.elements- are the elements to merge.- Returns:
- the array.
-
merge
@Pure public static <T> T[] merge(Class<T> clazz, T[] source, T... elements)
Merge the elements to make an array.This function does not remove the
nullvalues.- Type Parameters:
T- is the type of the elements.- Parameters:
source- is the first array to merge.clazz- is the type of the elements.elements- are the elements to merge.- Returns:
- the array.
-
mergeWithoutNull
@Pure public static <T> T[] mergeWithoutNull(Class<T> clazz, T[]... arrays)
Merge the arrays.This function removes the
nullvalues.- Type Parameters:
T- is the type of the elements.- Parameters:
clazz- is the type of the elements.arrays- are the arrays to merge.- Returns:
- the array.
-
mergeWithoutNull
@Pure public static <T> T[] mergeWithoutNull(Class<T> clazz, T... elements)
Merge the elements to make an array.This function removes the
nullvalues.- Type Parameters:
T- is the type of the elements.- Parameters:
clazz- is the type of the elements.elements- are the elements to merge.- Returns:
- the array.
-
mergeWithoutNull
@Pure public static <T> T[] mergeWithoutNull(Class<T> clazz, T[] source, T... elements)
Merge the elements to make an array.This function removes the
nullvalues.- Type Parameters:
T- is the type of the elements.- Parameters:
source- is the first array to merge.clazz- is the type of the elements.elements- are the elements to merge.- Returns:
- the array.
-
removeElements
@Pure public static <T> T[] removeElements(Class<T> clazz, T[] source, T... toRemove)
Remove the given elements from the array.- Type Parameters:
T- is the type of the elements.- Parameters:
clazz- is the type of the elements.source- is the array to scantoRemove- are the elements to remove.- Returns:
- the array without the removed elements.
-
castArray
@Pure public static <I,T> T[] castArray(I[] originalArray, Class<T> clazz)Cast the specified array and putnullis the array when the element could not be casted.- Type Parameters:
I- is the type of the elements before the cast.T- is the type of the elements after the cast.- Parameters:
originalArray- is the array to castclazz- is the casting type- Returns:
- the array in which each element was casted according to the given type.
- See Also:
castRestrictedArray(Object[], Class)
-
castArray
@Pure public static <I,O> O[] castArray(Collection<I> originalArray, Class<O> clazz)
Cast the specified array and putnullis the array when the element could not be casted.- Type Parameters:
I- is the type of the elements before the cast.O- is the type of the elements after the cast.- Parameters:
originalArray- is the array to castclazz- is the casting type- Returns:
- the array in which each element was casted according to the given type.
- See Also:
castRestrictedArray(Object[], Class)
-
restrictArray
@Pure public static <T> T[] restrictArray(T[] originalArray, Class<T> clazz, ArrayUtil.Filter<T> comparator)Replies an array in which all the elements must respect the given comparator.The respect of the comparator is done when the comparator replies equals.
- Type Parameters:
T- is the type of the elements- Parameters:
originalArray- is the array to castclazz- is the casting typecomparator- is filtering the elements.- Returns:
- the array in which each element was casted according to the given type.
-
castRestrictedArray
@Pure public static <I,O> O[] castRestrictedArray(I[] originalArray, Class<O> clazz)Cast the specified array and remove the elements that could not be casted.- Type Parameters:
I- is the type of the elements before the cast.O- is the type of the elements after the cast.- Parameters:
originalArray- is the array to castclazz- is the casting type- Returns:
- the array in which each element was casted according to the given type.
- See Also:
castArray(Object[], Class)
-
castRestrictedArray
@Pure public static <I,O> O[] castRestrictedArray(Collection<I> originalArray, Class<O> clazz)
Cast the specified array and remove the elements that could not be casted.- Type Parameters:
I- is the type of the elements before the cast.O- is the type of the elements after the cast.- Parameters:
originalArray- is the array to castclazz- is the casting type- Returns:
- the array in which each element was casted according to the given type.
- See Also:
castArray(Object[], Class)
-
containsObject
@Pure public static <T> boolean containsObject(T elt, T[] array)Replies of the given element is in the array.This function does not call
Object.equals(java.lang.Object). It tests the equality on the object references.- Type Parameters:
T- is the type of the elements.- Parameters:
elt- is the element to search for.array- is the array inside which the search must be done.- Returns:
trueif the element is inside the array, otherwisefalse
-
containsAllObjects
@Pure public static <T> boolean containsAllObjects(T[] elts, T[] array)Replies of the given element is in the array.This function does not call
Object.equals(java.lang.Object). It tests the equality on the object references.- Type Parameters:
T- is the type of the elements.- Parameters:
elts- are the elements to search for.array- is the array inside which the search must be done.- Returns:
trueif the elements are inside the array, otherwisefalse
-
contains
@Pure public static <T> boolean contains(T elt, T... array)Replies of the given element is in the array.This function is based on
Object.equals(java.lang.Object).- Type Parameters:
T- is the type of the elements.- Parameters:
elt- is the element to search for.array- is the array inside which the search must be done.- Returns:
trueif the element is inside the array, otherwisefalse
-
contains
@Pure public static <T> boolean contains(Comparator<T> comparator, T elt, T... array)
Replies of the given element is in the sorted array.This function assumes that the given array is sorted according to the given comparator. A dichotomic algorithm is used.
- Type Parameters:
T- is the type of the elements.- Parameters:
comparator- is the comparator used to sort the array.elt- is the element to search for.array- is the array inside which the search must be done.- Returns:
trueif the element is inside the array, otherwisefalse- Since:
- 4.0
-
containsAll
@Pure public static <T> boolean containsAll(T[] elts, T[] array)Replies if the given elements is in the array.This function is based on
Object.equals(java.lang.Object).- Type Parameters:
T- is the type of the elements.- Parameters:
elts- are the elements to search for.array- is the array inside which the search must be done.- Returns:
trueif the elements are inside the array, otherwisefalse
-
intersects
@Pure public static <T> boolean intersects(T[] elts, T[] array)Replies of one of the given elements is in the array.This function is based on
Object.equals(java.lang.Object).- Type Parameters:
T- is the type of the elements.- Parameters:
elts- is the first array.array- is the second array.- Returns:
trueif an intersection is existing, otherwisefalse
-
newInstance
@Pure public static <T> T[] newInstance(Class<T> clazz, int size)
Create an instance of array.- Type Parameters:
T- is the type of the elements.- Parameters:
clazz- is the type of the elements.size- is the size of the new array.- Returns:
- the new array.
-
shuffle
@Pure public static <T> void shuffle(T[] array)
Shuffle the specified array.- Type Parameters:
T- is the type of the elements.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static <T> void shuffle(T[] array, Random rnd)Shuffle the specified array.- Type Parameters:
T- is the type of the elements.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(boolean[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(boolean[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(byte[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(byte[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(char[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(char[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(int[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(int[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(long[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(long[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(float[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(float[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
shuffle
@Pure public static void shuffle(double[] array)
Shuffle the specified array.- Parameters:
array- is the array to shuffle.
-
shuffle
@Pure public static void shuffle(double[] array, Random rnd)Shuffle the specified array.- Parameters:
array- is the array to shuffle.rnd- is the random number generator to use.
-
toString
@Pure public static String toString(Object obj)
Replies a string representation of the given object.This function supports the base type's arrays.
- Parameters:
obj- is the object to translate.- Returns:
- a string representation of the given object.
-
sizedIterator
@Pure public static <T> SizedIterator<T> sizedIterator(T[] array)
Replies a sized iterator on the objects.- Type Parameters:
T- is the type of the object to iterate on.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
-
sizedIterator
@Pure public static SizedIterator<Character> sizedIterator(char[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Byte> sizedIterator(byte[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Short> sizedIterator(short[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Integer> sizedIterator(int[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Long> sizedIterator(long[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Float> sizedIterator(float[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Double> sizedIterator(double[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
sizedIterator
@Pure public static SizedIterator<Boolean> sizedIterator(boolean[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static <T> Iterator<T> iterator(T[] array)
Replies a sized iterator on the objects.- Type Parameters:
T- is the type of the object to iterate on.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Boolean> iterator(boolean[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Character> iterator(char[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Byte> iterator(byte[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Short> iterator(short[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Integer> iterator(int[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Long> iterator(long[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
iterator
@Pure public static Iterator<Float> iterator(float[] array)
Replies a sized iterator on the objects.- Parameters:
array- are the objects to iterate on.- Returns:
- an iterator
- Since:
- 4.1
-
-