类 ArrayUtil
- java.lang.Object
-
- me.codeplayer.util.ArrayUtil
-
public abstract class ArrayUtil extends Object
用于对数组类型的数据(字节数组参见NumberUtil类)进行相应处理的工具类- 作者:
- Ready
-
-
字段概要
字段 修饰符和类型 字段 说明 static Integer[]EMPTY_INTEGERS长度为0的Integer数组static int[]EMPTY_INTS长度为0的int数组static Object[]EMPTY_OBJECTS长度为0的对象数组static String[]EMPTY_STRINGS长度为0的字符串数组
-
构造器概要
构造器 构造器 说明 ArrayUtil()
-
方法概要
所有方法 静态方法 具体方法 修饰符和类型 方法 说明 static <E> E[]filter(E[] array, Predicate<? super E> matcher)过滤指定的数组,获得符合条件的元素数组static intgetDimension(Object array)获取指定数组元素的"维度",如果数组为普通的一维数组,则返回1;如果为二维数组,则返回2;以此类推...
如果不是数组,则返回-1
注意:Java没有真正意义上的多维数组,只有嵌套数组static StringgetInSQL(Object array, boolean isString)将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”static StringgetInSQL(Object array, boolean isInclude, boolean isString)将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”static StringBuildergetInSQL(StringBuilder sb, Object array, boolean isInclude, boolean isString)将指定字符串数组拼接为InSQL子句,方法将会根据元素个数来判断内容为“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,拼接内容为“=1”或“='1'”
如果数组元素有多个,拼接内容为“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”static intgetLength(Object array)获取指定数组元素的长度,如果指定的参数为null或长度为0,则返回0
如果指定参数不是数组类型,将引发异常static intgetLength(Object array, boolean triggerError)获取指定数组元素的长度,如果数组为null将返回0,如果不是数组类型,将引发异常static booleanhasLength(Object array)判断指定数组是否不为null并且数组长度length > 0,如果是,则返回true
如果指定参数不为null,也不是数组类型,则引发异常static booleanin(int value, int... array)检测指定的整数数组中是否存在指定的整数值static intindexOfInterval(Object array, double toCompare, Boolean ascOrDesc)查找指定数值在已经排序好的区间临界值数组中的区间索引(本方法主要用于兼容原始数据类型)。static <T extends Comparable<T>>
intindexOfInterval(T[] array, T toCompare, Boolean ascOrDesc)查找指定对象在已经排序好的区间临界值数组中的区间索引。static <T> booleanins(T value, T... array)检测指定的数组中是否存在指定的值static booleanisArray(Object obj)判断指定对象是否为数组类型static booleanisPrimitiveArray(Object array)判断指定对象是否是一个原始类型的数组(例如:int[]、float[]、char[]、double[]等)static Stringjoin(Object array, String delimiter)以指定的分隔符拼接数组元素并返回拼接后的字符串
如果数组为空,将会引发异常static StringBuilderjoin(StringBuilder sb, Object array, String delimiter)以指定的分隔符拼接数组元素,并追加到指定的StringBuilder中static Object[]of(Object... elements)快捷创建 Object 数组static <E> E[]ofNull()将单个元素构造成一个仅包含该元素的数组static <E> E[]ofNullable(E element)将单个元素构造成一个仅包含该元素的数组static <T,R>
R[]toArray(Iterable<T> items, Class<R> type, Function<? super T,R> mapper)将指定的集合中的元素经过mapper转换后,转为对应类型的数组static <T> T[]toArray(Collection<T> collection, Class<T> type)将指定的集合转为对应的数组static StringtoFinalString(Object array)迭代数组元素并返回迭代字符串,例如:“[e1, e2, e3, [e4_1, e4_2, e4_3, e4_4]]”
本方法可以迭代多维数组,内部采用递归算法static StringBuildertoFinalString(StringBuilder sb, Object array)迭代数组元素并将迭代字符串追加至StringBuilder中,追加字符串形如:“[e1, e2, e3, [e4_1, e4_2, e4_3, e4_4]]
本方法可以迭代多维数组,内部采用递归算法static StringtoString(Object array)返回指定数组对象的字符串形式
如果array是一个数组,则迭代其元素返回字符串,如“[e1, e2, e3, e4]”
如果array不是一个数组,则直接调用String.valueOf()方法返回static Objectunique(Object array)移除数组里的元素唯一化。static Objectunique(Object array, boolean forceNewCopy)移除数组里的重复元素,使其唯一化。
-
-
-
方法详细资料
-
isArray
public static boolean isArray(Object obj)
判断指定对象是否为数组类型- 参数:
obj- 指定的对象
-
join
public static StringBuilder join(StringBuilder sb, Object array, String delimiter)
以指定的分隔符拼接数组元素,并追加到指定的StringBuilder中- 参数:
sb- 指定的StringBuilder(如果为null,则内部自动创建)array- 指定的数组delimiter- 指定的分隔符
-
join
public static String join(Object array, String delimiter)
以指定的分隔符拼接数组元素并返回拼接后的字符串
如果数组为空,将会引发异常- 参数:
array- 指定的数组对象delimiter- 指定的分隔符
-
getInSQL
public static StringBuilder getInSQL(StringBuilder sb, Object array, boolean isInclude, boolean isString)
将指定字符串数组拼接为InSQL子句,方法将会根据元素个数来判断内容为“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,拼接内容为“=1”或“='1'”
如果数组元素有多个,拼接内容为“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”- 参数:
sb- 指定的StringBuilderarray- 指定的任意数组isInclude- 指示IN SQL是包含还是排除查询,如果是包含(true)将返回=、IN,如果是排除(false)将返回!=、NOT INisString- 指示元素是否以字符串形式参与InSQL语句。如果为true,将会在每个元素两侧加上单引号"'"
-
getInSQL
public static String getInSQL(Object array, boolean isInclude, boolean isString)
将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”- 参数:
array- 指定的数组isInclude- 指示IN SQL是包含还是排除查询,如果是包含(true)将返回=、IN,如果是排除(false)将返回!=、NOT INisString- 指示元素是否以字符串形式参与InSQL语句。如果为true,将会在每个元素两侧加上单引号"'"
-
getInSQL
public static String getInSQL(Object array, boolean isString)
将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”- 参数:
array- 指定的数组isString- 指示元素是否以字符串形式参与InSQL语句。如果为true,将会在每个元素两侧加上单引号"'"
-
toString
public static String toString(Object array)
返回指定数组对象的字符串形式
如果array是一个数组,则迭代其元素返回字符串,如“[e1, e2, e3, e4]”
如果array不是一个数组,则直接调用String.valueOf()方法返回
-
toFinalString
public static StringBuilder toFinalString(StringBuilder sb, Object array)
迭代数组元素并将迭代字符串追加至StringBuilder中,追加字符串形如:“[e1, e2, e3, [e4_1, e4_2, e4_3, e4_4]]
本方法可以迭代多维数组,内部采用递归算法- 参数:
sb- 指定的StringBuilderarray- 指定的数组对象
-
toFinalString
public static String toFinalString(Object array)
迭代数组元素并返回迭代字符串,例如:“[e1, e2, e3, [e4_1, e4_2, e4_3, e4_4]]”
本方法可以迭代多维数组,内部采用递归算法- 参数:
array- 指定的数组对象
-
hasLength
public static boolean hasLength(Object array)
判断指定数组是否不为null并且数组长度length > 0,如果是,则返回true
如果指定参数不为null,也不是数组类型,则引发异常- 参数:
array- 指定的数组
-
getLength
public static int getLength(Object array, boolean triggerError)
获取指定数组元素的长度,如果数组为null将返回0,如果不是数组类型,将引发异常- 参数:
array- 指定的数组triggerError- 当数组为null或数组长度为0时,是否触发异常,如果为true,则触发异常
-
getLength
public static int getLength(Object array)
获取指定数组元素的长度,如果指定的参数为null或长度为0,则返回0
如果指定参数不是数组类型,将引发异常- 参数:
array- 指定的数组对象
-
getDimension
public static int getDimension(Object array)
获取指定数组元素的"维度",如果数组为普通的一维数组,则返回1;如果为二维数组,则返回2;以此类推...
如果不是数组,则返回-1
注意:Java没有真正意义上的多维数组,只有嵌套数组- 参数:
array- 指定的数组对象- 从以下版本开始:
- 0.3.1
-
isPrimitiveArray
public static boolean isPrimitiveArray(Object array)
判断指定对象是否是一个原始类型的数组(例如:int[]、float[]、char[]、double[]等)- 参数:
array- 指定的对象- 从以下版本开始:
- 0.3.1
-
in
public static boolean in(int value, int... array)检测指定的整数数组中是否存在指定的整数值- 从以下版本开始:
- 0.3.5
-
ins
public static <T> boolean ins(T value, T... array)检测指定的数组中是否存在指定的值- 从以下版本开始:
- 0.3.5
-
indexOfInterval
public static <T extends Comparable<T>> int indexOfInterval(@Nullable T[] array, T toCompare, @Nullable Boolean ascOrDesc) throws IllegalArgumentException
查找指定对象在已经排序好的区间临界值数组中的区间索引。数组
array必须预先排序好,可以是升序或降序。例如:[5, 10, 20, 50, 100]。 此时,如果toCompare = 4,则返回 -1;如果toCompare = 5,则返回 0;如果toCompare = 12,则返回 1。如果数组中存在相等的值,则返回最靠近最大值的区间索引。
- 参数:
array- 区间临界值数组toCompare- 指定的对象ascOrDesc- 指定区间临界值数组的排序方式: true 表示升序, false 表示 降序;null 则自动根据数组中前两个元素的比较结果智能判断排序方式- 返回:
- 返回对应的区间索引。如果不满足最小的区间临界值,则返回 -1
- 抛出:
IllegalArgumentException- 如果数组前两个元素的大小相等,则抛出该异常- 从以下版本开始:
- 1.0.4
-
indexOfInterval
public static int indexOfInterval(Object array, double toCompare, Boolean ascOrDesc) throws IllegalArgumentException
查找指定数值在已经排序好的区间临界值数组中的区间索引(本方法主要用于兼容原始数据类型)。数组
array必须预先排序好,可以是升序或降序。例如:[5, 10, 20, 50, 100]。 此时,如果toCompare = 4,则返回 -1;如果toCompare = 5,则返回 0;如果toCompare = 12,则返回 1。如果数组中存在相等的值,则返回最靠近最大值的区间索引。
- 参数:
array- 区间临界值数组toCompare- 指定的对象ascOrDesc- 指定区间临界值数组的排序方式: true 表示升序, false 表示 降序;null 则自动根据数组中前两个元素的比较结果智能判断排序方式- 返回:
- 返回对应的区间索引。如果不满足最小的区间临界值,则返回 -1
- 抛出:
IllegalArgumentException- 如果数组前两个元素的大小相等,则抛出该异常- 从以下版本开始:
- 1.0.4
-
unique
public static Object unique(Object array, boolean forceNewCopy)
移除数组里的重复元素,使其唯一化。如果存在重复的元素,则只保留排序最靠前(索引较小)的那个元素- 参数:
array- 指定的数组对象forceNewCopy- 是否必须返回新的数组副本。如果为false,在没有找到重复元素时,将会直接返回原数组array
-
unique
public static Object unique(Object array)
移除数组里的元素唯一化。如果存在重复的元素,则只保留排序最靠前(索引较小)的那个元素- 参数:
array- 指定的数组对象- 另请参阅:
unique(Object, boolean)
-
toArray
public static <T> T[] toArray(Collection<T> collection, Class<T> type)
将指定的集合转为对应的数组
-
toArray
public static <T,R> R[] toArray(Iterable<T> items, Class<R> type, Function<? super T,R> mapper)
将指定的集合中的元素经过mapper转换后,转为对应类型的数组- 从以下版本开始:
- 3.0.0
-
filter
public static <E> E[] filter(E[] array, Predicate<? super E> matcher)过滤指定的数组,获得符合条件的元素数组- 参数:
array- 指定的数组matcher- 只有经过该过滤器后返回 true 的元素才符合条件- 从以下版本开始:
- 2.0.0
-
ofNullable
public static <E> E[] ofNullable(E element)
将单个元素构造成一个仅包含该元素的数组- 参数:
element- 指定的元素值- 返回:
- 如果 val == null,则返回 null;否则返回对应类型的数组
- 从以下版本开始:
- 2.1.0
-
ofNull
public static <E> E[] ofNull()
将单个元素构造成一个仅包含该元素的数组- 返回:
- null
- 从以下版本开始:
- 3.5.0
-
-