类 ArrayUtil
java.lang.Object
me.codeplayer.util.ArrayUtil
用于对数组类型的数据(字节数组参见NumberUtil类)进行相应处理的工具类
- 从以下版本开始:
- 2012-9-29
- 作者:
- Ready
-
字段概要
字段 -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static <E> E[]过滤指定的数组,获得符合条件的元素数组static intgetDimension(Object array) 获取指定数组元素的"维度",如果数组为普通的一维数组,则返回1;如果为二维数组,则返回2;以此类推...
如果不是数组,则返回-1
注意:Java没有真正意义上的多维数组,只有嵌套数组static String将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”static String将指定的数组拼接为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 int获取指定数组元素的长度,如果指定的参数为null或长度为0,则返回0
如果指定参数不是数组类型,将引发异常static int获取指定数组元素的长度,如果数组为null将返回0,如果不是数组类型,将引发异常static boolean判断指定数组是否不为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 boolean判断指定对象是否为数组类型static booleanisPrimitiveArray(Object array) 判断指定对象是否是一个原始类型的数组(例如:int[]、float[]、char[]、double[]等)static String以指定的分隔符拼接数组元素并返回拼接后的字符串
如果数组为空,将会引发异常static StringBuilderjoin(StringBuilder sb, Object array, String delimiter) 以指定的分隔符拼接数组元素,并追加到指定的StringBuilder中static Object[]快捷创建 Object 数组static <E> E[]ofNull()将单个元素构造成一个仅包含该元素的数组static <E> E[]ofNullable(E element) 将单个元素构造成一个仅包含该元素的数组static <T,R> R[] 将指定的集合中的元素经过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 String返回指定数组对象的字符串形式
如果array是一个数组,则迭代其元素返回字符串,如“[e1, e2, e3, e4]”
如果array不是一个数组,则直接调用String.valueOf()方法返回static Object移除数组里的元素唯一化。static Object移除数组里的重复元素,使其唯一化。
-
字段详细资料
-
EMPTY_OBJECTS
长度为0的对象数组 -
EMPTY_STRINGS
长度为0的字符串数组 -
EMPTY_INTS
public static final int[] EMPTY_INTS长度为0的int数组 -
EMPTY_INTEGERS
长度为0的Integer数组
-
-
构造器详细资料
-
ArrayUtil
public ArrayUtil()
-
-
方法详细资料
-
isArray
判断指定对象是否为数组类型- 参数:
obj- 指定的对象
-
join
以指定的分隔符拼接数组元素,并追加到指定的StringBuilder中- 参数:
sb- 指定的StringBuilder(如果为null,则内部自动创建)array- 指定的数组delimiter- 指定的分隔符
-
join
以指定的分隔符拼接数组元素并返回拼接后的字符串
如果数组为空,将会引发异常- 参数:
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
将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”- 参数:
array- 指定的数组isInclude- 指示IN SQL是包含还是排除查询,如果是包含(true)将返回=、IN,如果是排除(false)将返回!=、NOT INisString- 指示元素是否以字符串形式参与InSQL语句。如果为true,将会在每个元素两侧加上单引号"'"
-
getInSQL
将指定的数组拼接为InSQL子句并返回,内部将会根据元素个数来判断返回“=”语句还是“IN”语句
如果数组为空,将会引发异常
如果数组元素只有一个,将会返回“=1”或“='1'”
如果数组元素有多个,将会返回“ IN (1, 2, 5)”或“ IN ('1', '2', '5')”- 参数:
array- 指定的数组isString- 指示元素是否以字符串形式参与InSQL语句。如果为true,将会在每个元素两侧加上单引号"'"
-
toString
返回指定数组对象的字符串形式
如果array是一个数组,则迭代其元素返回字符串,如“[e1, e2, e3, e4]”
如果array不是一个数组,则直接调用String.valueOf()方法返回 -
toFinalString
迭代数组元素并将迭代字符串追加至StringBuilder中,追加字符串形如:“[e1, e2, e3, [e4_1, e4_2, e4_3, e4_4]]
本方法可以迭代多维数组,内部采用递归算法- 参数:
sb- 指定的StringBuilderarray- 指定的数组对象
-
toFinalString
迭代数组元素并返回迭代字符串,例如:“[e1, e2, e3, [e4_1, e4_2, e4_3, e4_4]]”
本方法可以迭代多维数组,内部采用递归算法- 参数:
array- 指定的数组对象
-
hasLength
判断指定数组是否不为null并且数组长度length > 0,如果是,则返回true
如果指定参数不为null,也不是数组类型,则引发异常- 参数:
array- 指定的数组
-
getLength
获取指定数组元素的长度,如果数组为null将返回0,如果不是数组类型,将引发异常- 参数:
array- 指定的数组triggerError- 当数组为null或数组长度为0时,是否触发异常,如果为true,则触发异常
-
getLength
获取指定数组元素的长度,如果指定的参数为null或长度为0,则返回0
如果指定参数不是数组类型,将引发异常- 参数:
array- 指定的数组对象
-
getDimension
获取指定数组元素的"维度",如果数组为普通的一维数组,则返回1;如果为二维数组,则返回2;以此类推...
如果不是数组,则返回-1
注意:Java没有真正意义上的多维数组,只有嵌套数组- 参数:
array- 指定的数组对象- 从以下版本开始:
- 0.3.1
-
isPrimitiveArray
判断指定对象是否是一个原始类型的数组(例如: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
移除数组里的重复元素,使其唯一化。如果存在重复的元素,则只保留排序最靠前(索引较小)的那个元素- 参数:
array- 指定的数组对象forceNewCopy- 是否必须返回新的数组副本。如果为false,在没有找到重复元素时,将会直接返回原数组array
-
unique
移除数组里的元素唯一化。如果存在重复的元素,则只保留排序最靠前(索引较小)的那个元素- 参数:
array- 指定的数组对象- 另请参阅:
-
toArray
将指定的集合转为对应的数组 -
toArray
将指定的集合中的元素经过mapper转换后,转为对应类型的数组- 从以下版本开始:
- 3.0.0
-
of
快捷创建 Object 数组 -
filter
过滤指定的数组,获得符合条件的元素数组- 参数:
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
-