public class ArrayUtil extends PrimitiveArrayUtil
INDEX_NOT_FOUND| Constructor and Description |
|---|
ArrayUtil() |
| Modifier and Type | Method and Description |
|---|---|
static <T> T[] |
addAll(T[]... arrays)
合并所有数组,返回合并后的新数组
忽略null的数组 |
static <A,T> A |
append(A array,
T... newElements)
将新元素添加到已有数组中
添加新元素会生成一个新的数组,不影响原数组 |
static <T> T[] |
append(T[] buffer,
T... newElements)
将新元素添加到已有数组中
添加新元素会生成一个新的数组,不影响原数组 |
static Object[] |
cast(Class<?> type,
Object arrayObj)
强转数组类型
强制转换的前提是数组元素类型可被强制转换 强制转换后会生成一个新数组 |
static <A> A |
castOrWrapSingle(Object values,
Class<?> elementType)
转为数组,如果values为数组,返回,否则返回一个只有values一个元素的数组
注意:values的元素类型或其本身类型必须和提供的elementType完全一致 |
static <T> T |
clone(T obj)
克隆数组,如果非数组返回
null |
static <T> T[] |
clone(T[] array)
克隆数组
|
static <T> boolean |
contains(T[] array,
T value)
数组中是否包含指定元素
|
static <T> boolean |
containsAll(T[] array,
T... values)
数组中是否包含所有指定元素
|
static <T> boolean |
containsAny(T[] array,
T... values)
数组中是否包含指定元素中的任意一个
|
static boolean |
containsIgnoreCase(CharSequence[] array,
CharSequence value)
数组中是否包含元素,忽略大小写
|
static <T> T |
copy(Object src,
int srcPos,
T dest,
int destPos,
int length)
|
static <T> T |
copy(Object src,
T dest)
|
static <T> T |
copy(Object src,
T dest,
int length)
|
static <T> T[] |
defaultIfEmpty(T[] array,
T[] defaultArray)
如果给定数组为空,返回默认数组
|
static <T> T[] |
distinct(T[] array)
去重数组中的元素,去重后生成新的数组,原数组不变
此方法通过 LinkedHashSet 去重 |
static <T,K> T[] |
distinct(T[] array,
Function<T,K> uniqueGenerator,
boolean override)
去重数组中的元素,去重后生成新的数组,原数组不变
此方法通过 LinkedHashSet 去重 |
static <T> T[] |
edit(T[] array,
UnaryOperator<T> editor)
对每个数组元素执行指定操作,返回操作后的元素
这个Editor实现可以实现以下功能: 过滤出需要的对象,如果返回 null则抛弃这个元素对象
修改元素对象,返回修改后的对象
|
static int |
emptyCount(Object... args)
计算
null或空元素对象的个数,通过ObjUtil.isEmpty(Object) 判断元素 |
static boolean |
equals(Object array1,
Object array2)
判断两个数组是否相等,判断依据包括数组长度和每个元素都相等。
|
static <T> T[] |
filter(T[] array,
Predicate<T> predicate)
|
static <T> T |
firstMatch(Predicate<T> matcher,
T... array)
返回数组中第一个匹配规则的值
|
static <T> T |
firstNonNull(T... array)
返回数组中第一个非空元素
|
static <E> E |
get(E[] array,
Predicate<E> predicate)
获取满足条件的第一个元素
|
static <E> E |
get(Object array,
int index)
获取数组对象中指定index的值,支持负数,例如-1表示倒数第一个值
如果数组下标越界,返回null |
static <T> T[] |
getAny(Object array,
int... indexes)
获取数组中所有指定位置的元素值,组成新数组
|
static Class<?> |
getArrayType(Class<?> componentType)
根据数组元素类型,获取数组的类型
方法是通过创建一个空数组从而获取其类型 本方法是 getComponentType(Class)的逆方法 |
static Class<?> |
getComponentType(Class<?> arrayClass)
获取数组对象的元素类型,方法调用参数与返回结果举例:
Object[].class =》 Object.class
String[].class =》 String.class
int[].class =》 int.class
Integer[].class =》 Integer.class
null =》 null
String.class =》 null
|
static Class<?> |
getComponentType(Object array)
获取数组对象的元素类型,方法调用参数与返回结果举例:
Object[] =》 Object.class
String[] =》 String.class
int[] =》 int.class
Integer[] =》 Integer.class
null =》 null
String =》 null
|
static boolean |
hasBlank(CharSequence... strs)
指定字符串数组中,是否包含空字符串。
|
static <T> boolean |
hasEmpty(T[] args)
|
static <T> boolean |
hasEmptyVarargs(T... args)
|
static <T> boolean |
hasNonNull(T... array)
是否包含非
null元素如果数组是 null或者空,返回false,否则当数组中有非null元素时返回true |
static <T> boolean |
hasNull(T... array)
是否包含
null元素
如果数组为null,则返回true,如果数组为空,则返回false |
static <T> Boolean |
hasSameElement(T[] array)
判断数组中是否有相同元素
若传入空数组,则返回
false |
static <T> int |
indexOf(T[] array,
Object value)
返回数组中指定元素所在位置,未找到返回
PrimitiveArrayUtil.INDEX_NOT_FOUND |
static <T> int |
indexOf(T[] array,
Object value,
int beginIndexInclude)
返回数组中指定元素所在位置,未找到返回
PrimitiveArrayUtil.INDEX_NOT_FOUND |
static int |
indexOfIgnoreCase(CharSequence[] array,
CharSequence value)
返回数组中指定元素所在位置,忽略大小写,未找到返回
PrimitiveArrayUtil.INDEX_NOT_FOUND |
static <T> int |
indexOfSub(T[] array,
int beginInclude,
T[] subArray)
查找子数组的位置
|
static <T> int |
indexOfSub(T[] array,
T[] subArray)
查找子数组的位置
|
static <A,E> A |
insert(A array,
int index,
E... newElements)
将新元素插入到已有数组中的某个位置
添加新元素会生成一个新的数组,不影响原数组 如果插入位置为负数,从原数组从后向前计数,若大于原数组长度,则空白处用默认值填充 |
static <T> T[] |
insert(T[] buffer,
int index,
T... newElements)
将新元素插入到已有数组中的某个位置
添加新元素会生成一个新的数组,不影响原数组 如果插入位置为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 |
static boolean |
isAllBlank(CharSequence... strs)
指定字符串数组中的元素,是否全部为空字符串。
|
static <T> boolean |
isAllEmpty(T[] args)
|
static <T> boolean |
isAllEmptyVarargs(T... args)
|
static boolean |
isAllNotBlank(CharSequence... args)
是否存都不为
null或空对象或空白符的对象,通过hasBlank(CharSequence...) |
static boolean |
isAllNotEmpty(Object... args)
|
static <T> boolean |
isAllNotNull(T... array)
是否所有元素都不为
null
如果提供的数组为null,则返回false,如果提供的数组为空,则返回true |
static <T> boolean |
isAllNull(T... array)
所有字段是否全为null
如果数组为
null或者空,则返回 true |
static boolean |
isArray(Object obj)
对象是否为数组对象
|
static boolean |
isEmpty(Object array)
数组是否为空
此方法会匹配单一对象,如果此对象为 null则返回true如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false 如果此对象为数组对象,数组长度大于0的情况下返回false,否则返回true |
static <T> boolean |
isEmpty(T[] array)
数组是否为空
|
static boolean |
isNotEmpty(Object array)
数组是否为非空
此方法会匹配单一对象,如果此对象为 null则返回false如果此对象为非数组,理解为此对象为数组的第一个元素,则返回true 如果此对象为数组对象,数组长度大于0的情况下返回true,否则返回false |
static <T> boolean |
isNotEmpty(T[] array)
数组是否为非空
|
static <T extends Comparable<? super T>> |
isSorted(T[] array)
检查数组是否有序,升序或者降序
若传入空数组,则返回
false;元素全部相等,返回 true |
static <T> boolean |
isSorted(T[] array,
Comparator<? super T> comparator)
检查数组是否有序,升序或者降序,使用指定比较器比较
若传入空数组或空比较器,则返回
false;元素全部相等,返回 true |
static <T extends Comparable<? super T>> |
isSortedASC(T[] array)
检查数组是否升序,即
array[i].compareTo(array[i + 1]) <= 0
若传入空数组,则返回false |
static <T> boolean |
isSortedASC(T[] array,
Comparator<? super T> comparator)
检查数组是否升序,使用指定的比较器比较,即
comparator.compare(array[i], array[i + 1]) <= 0
若传入空数组或空比较器,则返回false |
static <T extends Comparable<? super T>> |
isSortedDESC(T[] array)
检查数组是否降序,即
array[i].compareTo(array[i + 1]) >= 0
若传入空数组,则返回false |
static <T> boolean |
isSortedDESC(T[] array,
Comparator<? super T> comparator)
检查数组是否降序,使用指定的比较器比较,即
comparator.compare(array[i], array[i + 1]) >= 0
若传入空数组或空比较器,则返回false |
static <T> boolean |
isSub(T[] array,
T[] subArray)
是否是数组的子数组
|
static String |
join(Object array,
CharSequence conjunction)
以 conjunction 为分隔符将数组转换为字符串
|
static <T> String |
join(T[] array,
CharSequence conjunction)
以 conjunction 为分隔符将数组转换为字符串
|
static <T> String |
join(T[] array,
CharSequence delimiter,
String prefix,
String suffix)
以 conjunction 为分隔符将数组转换为字符串
|
static <T> String |
join(T[] array,
CharSequence conjunction,
UnaryOperator<T> editor)
先处理数组元素,再以 conjunction 为分隔符将数组转换为字符串
|
static <T> int |
lastIndexOf(T[] array,
Object value)
返回数组中指定元素最后的所在位置,未找到返回
PrimitiveArrayUtil.INDEX_NOT_FOUND |
static <T> int |
lastIndexOf(T[] array,
Object value,
int endInclude)
返回数组中指定元素最后的所在位置,未找到返回
PrimitiveArrayUtil.INDEX_NOT_FOUND |
static <T> int |
lastIndexOfSub(T[] array,
int endInclude,
T[] subArray)
查找最后一个子数组的开始位置
|
static <T> int |
lastIndexOfSub(T[] array,
T[] subArray)
查找最后一个子数组的开始位置
|
static int |
length(Object array)
获取数组长度
如果参数为 null,返回0
ArrayUtil.length(null) = 0
ArrayUtil.length([]) = 0
ArrayUtil.length([null]) = 1
ArrayUtil.length([true, false]) = 2
ArrayUtil.length([1, 2, 3]) = 3
ArrayUtil.length(["a", "b", "c"]) = 3
|
static <R> R[] |
map(Object array,
Class<R> targetComponentType,
Function<?,? extends R> func)
按照指定规则,将一种类型的数组转换为另一种类型
|
static <T,R> R[] |
mapToArray(T[] array,
Function<? super T,? extends R> func,
IntFunction<R[]> generator)
按照指定规则,将一种类型的数组元素转换为另一种类型,并保存为数组
|
static <T,R> List<R> |
mapToList(T[] array,
Function<? super T,? extends R> func)
按照指定规则,将一种类型的数组元素转换为另一种类型,并保存为
List |
static <T,R> Set<R> |
mapToSet(T[] array,
Function<? super T,? extends R> func)
按照指定规则,将一种类型的数组元素转换为另一种类型,并保存为
Set |
static <E> int |
matchIndex(int beginIndexInclude,
Predicate<E> matcher,
E... array)
返回数组中第一个匹配规则的值的位置
|
static <T> int |
matchIndex(Predicate<T> matcher,
T... array)
返回数组中第一个匹配规则的值的位置
|
static <T extends Comparable<? super T>> |
max(T[] numberArray)
取最大值
|
static <T extends Comparable<? super T>> |
max(T[] numberArray,
Comparator<T> comparator)
取最大值
|
static <T extends Comparable<? super T>> |
min(T[] numberArray)
取最小值
|
static <T extends Comparable<? super T>> |
min(T[] numberArray,
Comparator<T> comparator)
取最小值
|
static <T> T[] |
newArray(Class<?> componentType,
int newSize)
新建一个空数组
|
static Object[] |
newArray(int newSize)
新建一个
Object类型空数组 |
static String[] |
nullToEmpty(String[] array)
数组元素中的null转换为""
|
static <T> T[] |
ofArray(Iterable<T> iterable,
Class<T> componentType)
将集合转为数组,如果集合为
null,则返回空的数组(元素个数为0) |
static <T> T[] |
remove(T[] array,
int index)
移除数组中对应位置的元素
copy from commons-lang |
static <T extends CharSequence> |
removeBlank(T[] array)
去除
null或者""或者空白字符串 元素 |
static <T> T[] |
removeEle(T[] array,
T element)
移除数组中指定的元素
只会移除匹配到的第一个元素 copy from commons-lang |
static <T extends CharSequence> |
removeEmpty(T[] array)
去除
null或者"" 元素 |
static <T> T[] |
removeNull(T[] array)
去除
null 元素 |
static <A> A |
replace(A array,
int index,
A values)
从数组中的指定位置开始,按顺序使用新元素替换旧元素
如果 指定位置 为负数,那么生成一个新数组,其中新元素按顺序放在数组头部 如果 指定位置 大于等于 旧数组长度,那么生成一个新数组,其中新元素按顺序放在数组尾部 如果 指定位置 加上 新元素数量 大于 旧数组长度,那么生成一个新数组,指定位置之前是旧数组元素,指定位置及之后为新元素 否则,从已有数组中的指定位置开始,按顺序使用新元素替换旧元素,返回旧数组 |
static <T> T[] |
replace(T[] array,
int index,
T... values)
从数组中的指定位置开始,按顺序使用新元素替换旧元素
如果 指定位置 为负数,那么生成一个新数组,其中新元素按顺序放在数组头部 如果 指定位置 大于等于 旧数组长度,那么生成一个新数组,其中新元素按顺序放在数组尾部 如果 指定位置 加上 新元素数量 大于 旧数组长度,那么生成一个新数组,指定位置之前是旧数组元素,指定位置及之后为新元素 否则,从已有数组中的指定位置开始,按顺序使用新元素替换旧元素,返回旧数组 |
static Object |
resize(Object array,
int newSize)
生成一个新的重新设置大小的数组
调整大小后,按顺序拷贝原数组到新数组中,新长度更小则截断 |
static <T> T[] |
resize(T[] buffer,
int newSize)
生成一个新的重新设置大小的数组
调整大小后,按顺序拷贝原数组到新数组中,新长度更小则截断原数组 |
static <T> T[] |
resize(T[] data,
int newSize,
Class<?> componentType)
生成一个新的重新设置大小的数组
调整大小后,按顺序拷贝原数组到新数组中,新长度更小则截断 |
static <T> T[] |
reverse(T[] array)
反转数组,会变更原数组
|
static <T> T[] |
reverse(T[] array,
int startIndexInclusive,
int endIndexExclusive)
反转数组,会变更原数组
|
static <A> A |
setOrAppend(A array,
int index,
Object value)
将元素值设置为数组的某个位置,当给定的index大于等于数组长度,则追加
|
static <T> T[] |
setOrAppend(T[] array,
int index,
T value)
将元素值设置为数组的某个位置,当给定的index大于等于数组长度,则追加
|
static <A,E> A |
setOrPadding(A array,
int index,
E value,
E paddingValue)
将元素值设置为数组的某个位置,当index小于数组的长度时,替换指定位置的值,否则追加paddingValue直到到达index后,设置值
|
static <A> A |
setOrPadding(A array,
int index,
Object value)
将元素值设置为数组的某个位置,当index小于数组的长度时,替换指定位置的值,否则追加
null或0直到到达index后,设置值 |
static <T> T[] |
shuffle(T[] array)
打乱数组顺序,会变更原数组
使用Fisher–Yates洗牌算法,以线性时间复杂度打乱数组顺序 |
static <T> T[] |
shuffle(T[] array,
Random random)
打乱数组顺序,会变更原数组
使用Fisher–Yates洗牌算法,以线性时间复杂度打乱数组顺序 |
static <T> boolean |
startWith(T[] array,
T[] prefix)
array数组是否以prefix开头,每个元素的匹配使用
ObjUtil.equals(Object, Object)匹配。 |
static <A> A |
sub(A array,
int beginInclude,
int endExclude)
获取子数组
|
static <A> A |
sub(A array,
int beginInclude,
int endExclude,
int step)
获取子数组
|
static <T> T[] |
sub(T[] array,
int start,
int end)
获取子数组
|
static Object |
swap(Object array,
int index1,
int index2)
交换数组中两个位置的值
|
static <T> T[] |
swap(T[] array,
int index1,
int index2)
交换数组中两个位置的值
|
static String |
toString(Object obj)
数组或集合转String
|
static Object[] |
wrap(Object obj)
包装数组对象
|
static <A> A |
wrapSingle(Object value,
Class<?> elementType)
包装单一元素为数组
|
static <K,V> Map<K,V> |
zip(K[] keys,
V[] values)
映射键值(参考Python的zip()函数),返回Map无序
例如: keys = [a,b,c,d] values = [1,2,3,4] 则得到的Map是 {a=1, b=2, c=3, d=4} 如果两个数组长度不同,则只对应最短部分 |
static <K,V> Map<K,V> |
zip(K[] keys,
V[] values,
boolean isOrder)
映射键值(参考Python的zip()函数)
例如: keys = [a,b,c,d] values = [1,2,3,4] 则得到的Map是 {a=1, b=2, c=3, d=4} 如果两个数组长度不同,则只对应最短部分 |
addAll, addAll, addAll, addAll, addAll, addAll, addAll, addAll, contains, contains, contains, contains, contains, contains, contains, contains, indexOf, indexOf, indexOf, indexOf, indexOf, indexOf, indexOf, indexOf, isEmpty, isEmpty, isEmpty, isEmpty, isEmpty, isEmpty, isEmpty, isEmpty, isNotEmpty, isNotEmpty, isNotEmpty, isNotEmpty, isNotEmpty, isNotEmpty, isNotEmpty, isNotEmpty, isSortedASC, isSortedASC, isSortedASC, isSortedASC, isSortedASC, isSortedASC, isSortedASC, isSortedDESC, isSortedDESC, isSortedDESC, isSortedDESC, isSortedDESC, isSortedDESC, isSortedDESC, isSubEquals, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, max, max, max, max, max, max, max, min, min, min, min, min, min, min, regionMatches, remove, remove, remove, remove, remove, remove, remove, remove, remove, removeEle, removeEle, removeEle, removeEle, removeEle, removeEle, removeEle, removeEle, resize, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, reverse, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, shuffle, split, startWith, startWith, startWith, startWith, startWith, startWith, startWith, startWith, swap, swap, swap, swap, swap, swap, swap, swap, unWrap, unWrap, unWrap, unWrap, unWrap, unWrap, unWrap, unWrap, wrap, wrap, wrap, wrap, wrap, wrap, wrap, wrappublic static <A> A castOrWrapSingle(Object values, Class<?> elementType)
A - 数组类型values - 元素值elementType - 数组元素类型,null表示使用values的类型public static <A> A wrapSingle(Object value, Class<?> elementType)
A - 数组类型value - 元素值elementType - 数组元素类型,null表示使用value的类型public static <T> T[] ofArray(Iterable<T> iterable, Class<T> componentType)
null,则返回空的数组(元素个数为0)T - 数组元素类型iterable - IterablecomponentType - 集合元素类型public static boolean hasBlank(CharSequence... strs)
指定字符串数组中,是否包含空字符串。
如果指定的字符串数组的长度为 0,或者其中的任意一个元素是空字符串,则返回 true。
例:
hasBlank() // truehasBlank("", null, " ") // truehasBlank("123", " ") // truehasBlank("123", "abc") // false注意:该方法与 isAllBlank(CharSequence...) 的区别在于:
isBlank(...) || isBlank(...) || ...isAllBlank(CharSequence...) 等价于 isBlank(...) && isBlank(...) && ...strs - 字符串列表public static boolean isAllNotBlank(CharSequence... args)
null或空对象或空白符的对象,通过hasBlank(CharSequence...) 判断元素args - 被检查的对象,一个或者多个public static boolean isAllBlank(CharSequence... strs)
指定字符串数组中的元素,是否全部为空字符串。
如果指定的字符串数组的长度为 0,或者所有元素都是空字符串,则返回 true。
例:
isAllBlank() // trueisAllBlank("", null, " ") // trueisAllBlank("123", " ") // falseisAllBlank("123", "abc") // false注意:该方法与 hasBlank(CharSequence...) 的区别在于:
hasBlank(CharSequence...) 等价于 isBlank(...) || isBlank(...) || ...isBlank(...) && isBlank(...) && ...strs - 字符串列表public static <T> boolean isEmpty(T[] array)
T - 数组元素类型array - 数组public static <T> T[] defaultIfEmpty(T[] array,
T[] defaultArray)
T - 数组元素类型array - 数组defaultArray - 默认数组public static boolean isEmpty(Object array)
null则返回truearray - 数组public static <T> boolean isNotEmpty(T[] array)
T - 数组元素类型array - 数组public static boolean isNotEmpty(Object array)
null则返回falsearray - 数组public static int emptyCount(Object... args)
null或空元素对象的个数,通过ObjUtil.isEmpty(Object) 判断元素args - 被检查的对象,一个或者多个null或空元素对象的个数public static <T> boolean hasEmpty(T[] args)
T - 元素类型args - 被检查对象null 或空对象@SafeVarargs public static <T> boolean hasEmptyVarargs(T... args)
T - 元素类型args - 被检查对象null 或空对象IllegalArgumentException - 如果提供的args的item存在数组或集合,抛出异常public static <T> boolean isAllEmpty(T[] args)
T - 元素类型args - 被检查的对象,一个或者多个@SafeVarargs public static <T> boolean isAllEmptyVarargs(T... args)
T - 元素类型args - 被检查的对象,一个或者多个IllegalArgumentException - 如果提供的args的item存在数组或集合,抛出异常public static boolean isAllNotEmpty(Object... args)
args - 被检查的对象,一个或者多个public static <T> boolean hasNull(T... array)
null元素
如果数组为null,则返回true,如果数组为空,则返回false
T - 数组元素类型array - 被检查的数组null 元素public static <T> boolean isAllNull(T... array)
如果数组为null或者空,则返回 true
T - 数组元素类型array - 被检查的数组public static <T> boolean isAllNotNull(T... array)
null
如果提供的数组为null,则返回false,如果提供的数组为空,则返回true
T - 数组元素类型array - 被检查的数组nullpublic static <T> boolean hasNonNull(T... array)
null元素如果数组是null或者空,返回false,否则当数组中有非null元素时返回true
T - 数组元素类型array - 被检查的数组null 元素public static <T> T firstNonNull(T... array)
T - 数组元素类型array - 数组nullpublic static <T> T firstMatch(Predicate<T> matcher, T... array)
T - 数组元素类型matcher - 匹配接口,实现此接口自定义匹配规则array - 数组nullpublic static <T> int matchIndex(Predicate<T> matcher, T... array)
T - 数组元素类型matcher - 匹配接口,实现此接口自定义匹配规则array - 数组PrimitiveArrayUtil.INDEX_NOT_FOUND表示未匹配到public static <E> int matchIndex(int beginIndexInclude,
Predicate<E> matcher,
E... array)
E - 数组元素类型matcher - 匹配接口,实现此接口自定义匹配规则beginIndexInclude - 检索开始的位置,不能为负数array - 数组PrimitiveArrayUtil.INDEX_NOT_FOUND表示未匹配到public static <T> T[] newArray(Class<?> componentType, int newSize)
T - 数组元素类型componentType - 元素类型,例如:Integer.class,但是不能使用原始类型,例如:int.classnewSize - 大小public static Object[] newArray(int newSize)
Object类型空数组newSize - 大小Object类型的空数组public static Class<?> getComponentType(Object array)
array - 数组对象public static Class<?> getComponentType(Class<?> arrayClass)
arrayClass - 数组对象的classpublic static Class<?> getArrayType(Class<?> componentType)
本方法是 getComponentType(Class)的逆方法
componentType - 数组元素类型public static Object[] cast(Class<?> type, Object arrayObj) throws NullPointerException, IllegalArgumentException
type - 数组类型或数组元素类型arrayObj - 原数组NullPointerException - 提供参数为空IllegalArgumentException - 参数arrayObj不是数组@SafeVarargs public static <T> T[] append(T[] buffer, T... newElements)
T - 数组元素类型buffer - 已有数组newElements - 新元素@SafeVarargs public static <A,T> A append(A array, T... newElements)
A - 数组类型T - 数组元素类型array - 已有数组newElements - 新元素public static <T> T[] setOrAppend(T[] array,
int index,
T value)
T - 数组元素类型array - 已有数组index - 位置,大于等于长度则追加,否则替换value - 新值public static <A> A setOrAppend(A array,
int index,
Object value)
A - 数组类型array - 已有数组index - 位置,大于等于长度则追加,否则替换value - 新值public static <A> A setOrPadding(A array,
int index,
Object value)
null或0直到到达index后,设置值A - 数组类型array - 已有数组index - 位置,大于等于长度则追加,否则替换value - 新值public static <A,E> A setOrPadding(A array,
int index,
E value,
E paddingValue)
A - 数组类型E - 元素类型array - 已有数组index - 位置,大于等于长度则追加,否则替换value - 新值paddingValue - 填充值@SafeVarargs public static <T> T[] addAll(T[]... arrays)
T - 数组元素类型arrays - 数组集合public static <T> T[] replace(T[] array,
int index,
T... values)
T - 数组元素类型array - 已有数组index - 位置values - 新值public static <A> A replace(A array,
int index,
A values)
A - 数组类型array - 已有数组index - 位置values - 新值public static <T> T[] insert(T[] buffer,
int index,
T... newElements)
T - 数组元素类型buffer - 已有数组index - 插入位置,此位置为对应此位置元素之前的空档newElements - 新元素@SafeVarargs public static <A,E> A insert(A array, int index, E... newElements)
A - 数组类型E - 数组元素类型array - 已有数组,可以为原始类型数组index - 插入位置,此位置为对应此位置元素之前的空档newElements - 新元素public static <T> T[] resize(T[] data,
int newSize,
Class<?> componentType)
T - 数组元素类型data - 原数组newSize - 新的数组大小componentType - 数组元素类型public static Object resize(Object array, int newSize)
array - 原数组newSize - 新的数组大小System.arraycopy(Object, int, Object, int, int)public static <T> T[] resize(T[] buffer,
int newSize)
T - 数组元素类型buffer - 原数组newSize - 新的数组大小public static <T> T copy(Object src, T dest)
T - 目标数组类型src - 源数组dest - 目标数组public static <T> T copy(Object src, T dest, int length)
T - 目标数组类型src - 源数组dest - 目标数组length - 拷贝数组长度public static <T> T copy(Object src, int srcPos, T dest, int destPos, int length)
T - 目标数组类型src - 源数组srcPos - 源数组开始位置dest - 目标数组destPos - 目标数组开始位置length - 拷贝数组长度public static <T> T[] clone(T[] array)
T - 数组元素类型array - 被克隆的数组public static <T> T clone(T obj)
nullT - 数组元素类型obj - 数组对象public static <T> T[] edit(T[] array,
UnaryOperator<T> editor)
null则抛弃这个元素对象T - 数组元素类型array - 数组editor - 编辑器接口,为 null则返回原数组public static <T> T[] filter(T[] array,
Predicate<T> predicate)
T - 数组元素类型array - 数组predicate - 过滤器接口,用于定义过滤规则,为null则返回原数组public static <T> T[] removeNull(T[] array)
null 元素T - 数组元素类型array - 数组public static <T extends CharSequence> T[] removeEmpty(T[] array)
null或者"" 元素T - 数组元素类型array - 数组public static <T extends CharSequence> T[] removeBlank(T[] array)
null或者""或者空白字符串 元素T - 数组元素类型array - 数组public static String[] nullToEmpty(String[] array)
array - 数组public static <K,V> Map<K,V> zip(K[] keys, V[] values, boolean isOrder)
K - Key类型V - Value类型keys - 键列表values - 值列表isOrder - Map中的元素是否保留键值数组本身的顺序public static <K,V> Map<K,V> zip(K[] keys, V[] values)
K - Key类型V - Value类型keys - 键列表values - 值列表public static <T> int indexOf(T[] array,
Object value,
int beginIndexInclude)
PrimitiveArrayUtil.INDEX_NOT_FOUNDT - 数组类型array - 数组value - 被检查的元素beginIndexInclude - 检索开始的位置PrimitiveArrayUtil.INDEX_NOT_FOUNDpublic static <T> int indexOf(T[] array,
Object value)
PrimitiveArrayUtil.INDEX_NOT_FOUNDT - 数组类型array - 数组value - 被检查的元素PrimitiveArrayUtil.INDEX_NOT_FOUNDpublic static int indexOfIgnoreCase(CharSequence[] array, CharSequence value)
PrimitiveArrayUtil.INDEX_NOT_FOUNDarray - 数组value - 被检查的元素PrimitiveArrayUtil.INDEX_NOT_FOUNDpublic static <T> int lastIndexOf(T[] array,
Object value)
PrimitiveArrayUtil.INDEX_NOT_FOUNDT - 数组类型array - 数组value - 被检查的元素PrimitiveArrayUtil.INDEX_NOT_FOUNDpublic static <T> int lastIndexOf(T[] array,
Object value,
int endInclude)
PrimitiveArrayUtil.INDEX_NOT_FOUNDT - 数组类型array - 数组value - 被检查的元素endInclude - 从后向前查找时的起始位置,一般为array.length - 1PrimitiveArrayUtil.INDEX_NOT_FOUNDpublic static <T> boolean contains(T[] array,
T value)
T - 数组元素类型array - 数组value - 被检查的元素public static <T> boolean containsAny(T[] array,
T... values)
T - 数组元素类型array - 数组values - 被检查的多个元素public static <T> boolean containsAll(T[] array,
T... values)
T - 数组元素类型array - 数组values - 被检查的多个元素public static boolean containsIgnoreCase(CharSequence[] array, CharSequence value)
array - 数组value - 被检查的元素public static Object[] wrap(Object obj)
obj - 对象,可以是对象数组或者基本类型数组HutoolException - 对象为非数组public static boolean isArray(Object obj)
obj - 对象null 返回falsepublic static <E> E get(Object array, int index)
E - 数组元素类型array - 数组对象index - 下标,支持负数public static <E> E get(E[] array,
Predicate<E> predicate)
E - 元素类型array - 数组predicate - 条件nullpublic static <T> T[] getAny(Object array, int... indexes)
T - 数组元素类型array - 数组,如果提供为null则返回nullindexes - 下标列表public static String toString(Object obj)
obj - 集合或数组对象public static int length(Object array) throws IllegalArgumentException
null,返回0
ArrayUtil.length(null) = 0 ArrayUtil.length([]) = 0 ArrayUtil.length([null]) = 1 ArrayUtil.length([true, false]) = 2 ArrayUtil.length([1, 2, 3]) = 3 ArrayUtil.length(["a", "b", "c"]) = 3
array - 数组对象IllegalArgumentException - 如果参数不为数组,抛出此异常Array.getLength(Object)public static <T> String join(T[] array, CharSequence conjunction)
T - 数组元素类型array - 数组conjunction - 分隔符public static <T> String join(T[] array, CharSequence delimiter, String prefix, String suffix)
T - 数组元素类型array - 数组delimiter - 分隔符prefix - 每个元素添加的前缀,null表示不添加suffix - 每个元素添加的后缀,null表示不添加public static <T> String join(T[] array, CharSequence conjunction, UnaryOperator<T> editor)
T - 数组元素类型array - 数组conjunction - 分隔符editor - 每个元素的编辑器,null表示不编辑public static String join(Object array, CharSequence conjunction)
array - 数组conjunction - 分隔符public static <T> T[] remove(T[] array,
int index)
throws IllegalArgumentException
T - 数组元素类型array - 数组对象,可以是对象数组,也可以原始类型数组index - 位置,如果位置小于0或者大于长度,返回原数组IllegalArgumentException - 参数对象不为数组对象public static <T> T[] removeEle(T[] array,
T element)
throws IllegalArgumentException
T - 数组元素类型array - 数组对象,可以是对象数组,也可以原始类型数组element - 要移除的元素IllegalArgumentException - 参数对象不为数组对象public static <T> T[] reverse(T[] array,
int startIndexInclusive,
int endIndexExclusive)
T - 数组元素类型array - 数组,会变更startIndexInclusive - 开始位置(包含)endIndexExclusive - 结束位置(不包含)public static <T> T[] reverse(T[] array)
T - 数组元素类型array - 数组,会变更public static <T extends Comparable<? super T>> T min(T[] numberArray)
T - 元素类型numberArray - 数字数组public static <T extends Comparable<? super T>> T min(T[] numberArray, Comparator<T> comparator)
T - 元素类型numberArray - 数字数组comparator - 比较器,null按照默认比较public static <T extends Comparable<? super T>> T max(T[] numberArray)
T - 元素类型numberArray - 数字数组public static <T extends Comparable<? super T>> T max(T[] numberArray, Comparator<T> comparator)
T - 元素类型numberArray - 数字数组comparator - 比较器,null表示默认比较器public static <T> T[] shuffle(T[] array)
T - 元素类型array - 数组,会变更public static <T> T[] shuffle(T[] array,
Random random)
T - 元素类型array - 数组,会变更random - 随机数生成器public static <T> T[] swap(T[] array,
int index1,
int index2)
T - 元素类型array - 数组index1 - 位置1index2 - 位置2public static Object swap(Object array, int index1, int index2)
array - 数组对象index1 - 位置1index2 - 位置2public static <T> T[] distinct(T[] array)
LinkedHashSet 去重T - 数组元素类型array - 数组public static <T,K> T[] distinct(T[] array,
Function<T,K> uniqueGenerator,
boolean override)
LinkedHashSet 去重T - 数组元素类型K - 唯一键类型array - 数组uniqueGenerator - 唯一键生成器override - 是否覆盖模式,如果为true,加入的新值会覆盖相同key的旧值,否则会忽略新加值public static <R> R[] map(Object array, Class<R> targetComponentType, Function<?,? extends R> func)
R - 目标数组类型array - 被转换的数组targetComponentType - 目标的元素类型,只能为包装类型func - 转换规则函数public static <T,R> R[] mapToArray(T[] array,
Function<? super T,? extends R> func,
IntFunction<R[]> generator)
T - 原数组类型R - 目标数组类型array - 被转换的数组func - 转换规则函数generator - 数组生成器,如返回String[],则传入String[]::newpublic static <T,R> List<R> mapToList(T[] array, Function<? super T,? extends R> func)
ListT - 原数组类型R - 目标数组类型array - 被转换的数组func - 转换规则函数public static <T,R> Set<R> mapToSet(T[] array, Function<? super T,? extends R> func)
SetT - 原数组类型R - 目标数组类型array - 被转换的数组func - 转换规则函数public static boolean equals(Object array1, Object array2)
array1 - 数组1array2 - 数组2public static <T> T[] sub(T[] array,
int start,
int end)
T - 数组元素类型array - 数组,不允许为空start - 开始位置(包括)end - 结束位置(不包括)Arrays.copyOfRange(Object[], int, int)public static <A> A sub(A array,
int beginInclude,
int endExclude)
A - 数组类型array - 数组beginInclude - 开始位置(包括)endExclude - 结束位置(不包括)public static <A> A sub(A array,
int beginInclude,
int endExclude,
int step)
A - 数组类型array - 数组beginInclude - 开始位置(包括)endExclude - 结束位置(不包括)step - 步进public static <T> boolean isSub(T[] array,
T[] subArray)
T - 数组元素类型array - 数组subArray - 子数组public static <T> int indexOfSub(T[] array,
T[] subArray)
T - 数组元素类型array - 数组subArray - 子数组public static <T> int indexOfSub(T[] array,
int beginInclude,
T[] subArray)
T - 数组元素类型array - 数组beginInclude - 查找开始的位置(包含)subArray - 子数组public static <T> int lastIndexOfSub(T[] array,
T[] subArray)
T - 数组元素类型array - 数组subArray - 子数组public static <T> int lastIndexOfSub(T[] array,
int endInclude,
T[] subArray)
T - 数组元素类型array - 数组endInclude - 从后往前查找时的开始位置(包含),负数为从后向前的位置,如-1表示最后一位subArray - 子数组public static <T> boolean isSorted(T[] array,
Comparator<? super T> comparator)
若传入空数组或空比较器,则返回false;元素全部相等,返回 true
T - 数组元素类型array - 数组comparator - 比较器,需要自己处理null值比较public static <T extends Comparable<? super T>> boolean isSorted(T[] array)
若传入空数组,则返回false;元素全部相等,返回 true
T - 数组元素类型,该类型需要实现Comparable接口array - 数组NullPointerException - 如果数组元素含有null值public static <T extends Comparable<? super T>> boolean isSortedASC(T[] array)
array[i].compareTo(array[i + 1]) <= 0
若传入空数组,则返回false
T - 数组元素类型,该类型需要实现Comparable接口array - 数组NullPointerException - 如果数组元素含有null值public static <T extends Comparable<? super T>> boolean isSortedDESC(T[] array)
array[i].compareTo(array[i + 1]) >= 0
若传入空数组,则返回false
T - 数组元素类型,该类型需要实现Comparable接口array - 数组NullPointerException - 如果数组元素含有null值public static <T> boolean isSortedASC(T[] array,
Comparator<? super T> comparator)
comparator.compare(array[i], array[i + 1]) <= 0
若传入空数组或空比较器,则返回false
T - 数组元素类型array - 数组comparator - 比较器,需要自己处理null值比较public static <T> boolean isSortedDESC(T[] array,
Comparator<? super T> comparator)
comparator.compare(array[i], array[i + 1]) >= 0
若传入空数组或空比较器,则返回false
T - 数组元素类型array - 数组comparator - 比较器,需要自己处理null值比较public static <T> Boolean hasSameElement(T[] array)
若传入空数组,则返回false
T - 数组元素类型array - 数组public static <T> boolean startWith(T[] array,
T[] prefix)
ObjUtil.equals(Object, Object)匹配。
truetruefalseT - 数组元素类型array - 数组prefix - 前缀Copyright © 2025. All rights reserved.