edit(final UnaryOperator> editor) {
+ if (null == array || null == editor) {
+ return this;
+ }
+
+ for (int i = 0; i < length; i++) {
+ setOrAppend(i, editor.apply(get(i)));
+ }
+ return this;
+ }
+
+ /**
+ * 获取子数组
+ *
+ * @param begin 开始位置(包括)
+ * @param end 结束位置(不包括)
+ * @return 新的数组
+ * @see Arrays#copyOfRange(Object[], int, int)
+ * @since 4.2.2
+ */
+ @SuppressWarnings({"unchecked", "SuspiciousSystemArraycopy"})
+ public A getSub(int begin, int end) {
+ final int length = this.length;
+ if (begin < 0) {
+ begin += length;
+ }
+ if (end < 0) {
+ end += length;
+ }
+ if (begin > end) {
+ final int tmp = begin;
+ begin = end;
+ end = tmp;
+ }
+ if (begin >= length) {
+ return (A) Array.newInstance(this.componentType, 0);
+ }
+ if (end > length) {
+ end = length;
+ }
+
+ final A result = (A) Array.newInstance(this.componentType, end - begin);
+ System.arraycopy(this.array, begin, result, 0, end - begin);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ final A array = this.array;
+ if (null == array) {
+ return null;
+ }
+
+ if (array instanceof long[]) {
+ return Arrays.toString((long[]) array);
+ } else if (array instanceof int[]) {
+ return Arrays.toString((int[]) array);
+ } else if (array instanceof short[]) {
+ return Arrays.toString((short[]) array);
+ } else if (array instanceof char[]) {
+ return Arrays.toString((char[]) array);
+ } else if (array instanceof byte[]) {
+ return Arrays.toString((byte[]) array);
+ } else if (array instanceof boolean[]) {
+ return Arrays.toString((boolean[]) array);
+ } else if (array instanceof float[]) {
+ return Arrays.toString((float[]) array);
+ } else if (array instanceof double[]) {
+ return Arrays.toString((double[]) array);
+ } else if (ArrayUtil.isArray(array)) {
+ // 对象数组
+ try {
+ return Arrays.deepToString((Object[]) array);
+ } catch (final Exception ignore) {
+ //ignore
+ }
+ }
+
+ return array.toString();
+ }
+
+ // region ----- private methods
+ /**
+ * 设置新数组,并更新长度
+ *
+ * @param newArray 数组
+ */
+ private void setNewArray(final A newArray) {
+ this.array = newArray;
+ this.length = Array.getLength(newArray);
+ }
+
+ /**
+ * 创建单一元素数组
+ *
+ * @param value 元素值
+ * @return 数组
+ */
+ private Object createSingleElementArray(final Object value) {
+ // 插入单个元素
+ final Object newInstance = Array.newInstance(this.componentType, 1);
+ Array.set(newInstance, 1, value);
+ return newInstance;
+ }
+ // endregion
+}
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/array/PrimitiveArrayUtil.java
similarity index 98%
rename from hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java
rename to hutool-core/src/main/java/cn/hutool/core/array/PrimitiveArrayUtil.java
index 070ef5c8c..c62ccf48b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/PrimitiveArrayUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/array/PrimitiveArrayUtil.java
@@ -10,9 +10,11 @@
* See the Mulan PSL v2 for more details.
*/
-package cn.hutool.core.util;
+package cn.hutool.core.array;
import cn.hutool.core.math.NumberUtil;
+import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.RandomUtil;
import java.lang.reflect.Array;
import java.util.Arrays;
@@ -3195,12 +3197,7 @@ public class PrimitiveArrayUtil {
return false;
}
- for (int i = 0; i < prefix.length; i++) {
- if (array[i] != prefix[i]) {
- return false;
- }
- }
- return true;
+ return isSubEquals(array, 0, prefix);
}
/**
@@ -3395,46 +3392,52 @@ public class PrimitiveArrayUtil {
/**
* 是否局部匹配,相当于对比以下子串是否相等
*
- * byte1[offset1, byte2.length]
+ * array1[offset1, subArray.length]
* ||
- * byte2
+ * subArray
*
*
- * @param bytes1 第一个数组
- * @param offset 开始位置
- * @param bytes2 第二个数组
+ * @param array 数组
+ * @param offset 开始位置
+ * @param subArray 子数组
* @return 是否局部匹配
*/
- public static boolean isSubEquals(final byte[] bytes1, final int offset, final byte[] bytes2) {
- return regionMatches(bytes1, offset, bytes2, 0, bytes2.length);
+ public static boolean isSubEquals(final byte[] array, final int offset, final byte[] subArray) {
+ if (array == subArray) {
+ return true;
+ }
+ if (array.length < subArray.length) {
+ return false;
+ }
+ return regionMatches(array, offset, subArray, 0, subArray.length);
}
/**
* 是否局部匹配,相当于对比以下子串是否相等
*
- * byte1[offset1, offset1 + length]
+ * array1[offset1 : offset1 + length]
* ||
- * byte2[offset2, offset2 + length]
+ * array2[offset2 : offset2 + length]
*
*
- * @param bytes1 第一个数组
+ * @param array1 第一个数组
* @param offset1 第一个数组开始位置
- * @param bytes2 第二个数组
+ * @param array2 第二个数组
* @param offset2 第二个数组开始位置
* @param length 检查长度
* @return 是否局部匹配
*/
- public static boolean regionMatches(final byte[] bytes1, final int offset1,
- final byte[] bytes2, final int offset2, final int length) {
- if(bytes1.length < offset1 + length){
+ public static boolean regionMatches(final byte[] array1, final int offset1,
+ final byte[] array2, final int offset2, final int length) {
+ if (array1.length < offset1 + length) {
throw new IndexOutOfBoundsException("[byte1] length must be >= [offset1 + length]");
}
- if(bytes2.length < offset2 + length){
+ if (array2.length < offset2 + length) {
throw new IndexOutOfBoundsException("[byte2] length must be >= [offset2 + length]");
}
for (int i = 0; i < length; i++) {
- if (bytes1[i + offset1] != bytes2[i + offset2]) {
+ if (array1[i + offset1] != array2[i + offset2]) {
return false;
}
}
diff --git a/hutool-core/src/main/java/cn/hutool/core/array/package-info.java b/hutool-core/src/main/java/cn/hutool/core/array/package-info.java
new file mode 100755
index 000000000..589142777
--- /dev/null
+++ b/hutool-core/src/main/java/cn/hutool/core/array/package-info.java
@@ -0,0 +1,18 @@
+/*
+ * Copyright (c) 2023 looly(loolly@aliyun.com)
+ * Hutool is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ */
+
+/**
+ * 提供数组相关封装
+ *
+ * @author looly
+ */
+package cn.hutool.core.array;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanPath.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanPath.java
index d2b293f63..966451b80 100644
--- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanPath.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanPath.java
@@ -19,7 +19,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
index e14369765..a8f884a3e 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/BeanUtil.java
@@ -27,7 +27,7 @@ import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.reflect.FieldUtil;
import cn.hutool.core.reflect.ModifierUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.beans.BeanInfo;
diff --git a/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java b/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java
index a093d24fb..830ce30c9 100755
--- a/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java
+++ b/hutool-core/src/main/java/cn/hutool/core/bean/copier/CopyOptions.java
@@ -17,7 +17,7 @@ import cn.hutool.core.convert.Converter;
import cn.hutool.core.lang.func.LambdaUtil;
import cn.hutool.core.lang.func.SerFunction;
import cn.hutool.core.lang.mutable.MutableEntry;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.Serializable;
import java.lang.reflect.Field;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
index 2ea285e39..8ccc05b21 100755
--- a/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/PercentCodec.java
@@ -16,7 +16,7 @@ import cn.hutool.core.codec.binary.Base16Codec;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.CharPool;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.io.ByteArrayOutputStream;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java
index 54f38eba4..bdd1f7f5d 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base62Codec.java
@@ -14,7 +14,7 @@ package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.codec.Encoder;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.ByteArrayOutputStream;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java
index fc099d75e..4a821c4a9 100644
--- a/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java
+++ b/hutool-core/src/main/java/cn/hutool/core/codec/binary/Base64Decoder.java
@@ -14,7 +14,7 @@ package cn.hutool.core.codec.binary;
import cn.hutool.core.codec.Decoder;
import cn.hutool.core.lang.mutable.MutableInt;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
/**
* Base64解码实现
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
index 953bc73af..8a0b0e4df 100755
--- a/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollUtil.java
@@ -32,7 +32,7 @@ import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.core.stream.StreamUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.lang.reflect.Type;
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/CollectionOperation.java b/hutool-core/src/main/java/cn/hutool/core/collection/CollectionOperation.java
index e0922dcdb..f6627433d 100755
--- a/hutool-core/src/main/java/cn/hutool/core/collection/CollectionOperation.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/CollectionOperation.java
@@ -12,7 +12,7 @@
package cn.hutool.core.collection;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.ArrayList;
import java.util.Collection;
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java
index 983895c8a..9f22debb9 100755
--- a/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/ListUtil.java
@@ -21,7 +21,7 @@ import cn.hutool.core.comparator.PinyinComparator;
import cn.hutool.core.comparator.PropertyComparator;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.page.PageInfo;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.util.*;
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/SetUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/SetUtil.java
index 267f5938e..afbe36195 100644
--- a/hutool-core/src/main/java/cn/hutool/core/collection/SetUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/SetUtil.java
@@ -12,7 +12,7 @@
package cn.hutool.core.collection;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Collection;
import java.util.Collections;
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterChain.java b/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterChain.java
index c508146a1..293e24bde 100644
--- a/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterChain.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterChain.java
@@ -13,7 +13,7 @@
package cn.hutool.core.collection.iter;
import cn.hutool.core.lang.Chain;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.*;
diff --git a/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterUtil.java b/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterUtil.java
index 84c1061e0..717f2830a 100644
--- a/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/collection/iter/IterUtil.java
@@ -18,7 +18,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.reflect.FieldUtil;
import cn.hutool.core.reflect.MethodUtil;
import cn.hutool.core.text.StrJoiner;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java b/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java
index 9fd047fb8..0547227eb 100644
--- a/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/comparator/CompareUtil.java
@@ -12,7 +12,7 @@
package cn.hutool.core.comparator;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Comparator;
import java.util.Objects;
diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/IndexedComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/IndexedComparator.java
index c02cb411f..97d1cc40b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/comparator/IndexedComparator.java
+++ b/hutool-core/src/main/java/cn/hutool/core/comparator/IndexedComparator.java
@@ -13,7 +13,7 @@
package cn.hutool.core.comparator;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Comparator;
diff --git a/hutool-core/src/main/java/cn/hutool/core/compress/ZipWriter.java b/hutool-core/src/main/java/cn/hutool/core/compress/ZipWriter.java
index f596e111c..cc49e5bb8 100755
--- a/hutool-core/src/main/java/cn/hutool/core/compress/ZipWriter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/compress/ZipWriter.java
@@ -16,7 +16,7 @@ import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.resource.Resource;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import java.io.Closeable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java
index fd8cf3019..46b971152 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/AbstractConverter.java
@@ -14,7 +14,7 @@ package cn.hutool.core.convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.reflect.TypeUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java b/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java
index b1130cd9f..104a27b6b 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/NumberChineseFormatter.java
@@ -15,7 +15,7 @@ package cn.hutool.core.convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.math.BigDecimal;
import java.math.RoundingMode;
diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
index 839212763..e6f08b68f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/convert/impl/ArrayConverter.java
@@ -19,7 +19,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.SerializeUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ByteUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/DateModifier.java b/hutool-core/src/main/java/cn/hutool/core/date/DateModifier.java
index 4316f7761..66d8add22 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/DateModifier.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/DateModifier.java
@@ -12,7 +12,7 @@
package cn.hutool.core.date;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Calendar;
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/Month.java b/hutool-core/src/main/java/cn/hutool/core/date/Month.java
index f8bfe1ff1..ee4324ffd 100644
--- a/hutool-core/src/main/java/cn/hutool/core/date/Month.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/Month.java
@@ -13,7 +13,7 @@
package cn.hutool.core.date;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.time.format.TextStyle;
import java.util.Calendar;
diff --git a/hutool-core/src/main/java/cn/hutool/core/date/Week.java b/hutool-core/src/main/java/cn/hutool/core/date/Week.java
index c116a8572..0c6099641 100755
--- a/hutool-core/src/main/java/cn/hutool/core/date/Week.java
+++ b/hutool-core/src/main/java/cn/hutool/core/date/Week.java
@@ -13,7 +13,7 @@
package cn.hutool.core.date;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.time.DayOfWeek;
import java.util.Calendar;
diff --git a/hutool-core/src/main/java/cn/hutool/core/exceptions/ExceptionUtil.java b/hutool-core/src/main/java/cn/hutool/core/exceptions/ExceptionUtil.java
index c3228abb3..f6c95b8b2 100644
--- a/hutool-core/src/main/java/cn/hutool/core/exceptions/ExceptionUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/exceptions/ExceptionUtil.java
@@ -16,7 +16,7 @@ import cn.hutool.core.io.stream.FastByteArrayOutputStream;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.io.PrintStream;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/ByteOrderMark.java b/hutool-core/src/main/java/cn/hutool/core/io/ByteOrderMark.java
index e841b8d09..081cda175 100755
--- a/hutool-core/src/main/java/cn/hutool/core/io/ByteOrderMark.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/ByteOrderMark.java
@@ -1,7 +1,7 @@
package cn.hutool.core.io;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/CharsetDetector.java b/hutool-core/src/main/java/cn/hutool/core/io/CharsetDetector.java
index 414e78cd4..e442d4d40 100644
--- a/hutool-core/src/main/java/cn/hutool/core/io/CharsetDetector.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/CharsetDetector.java
@@ -14,7 +14,7 @@ package cn.hutool.core.io;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.io.file.FileUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.File;
import java.io.IOException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java
index 8cc7f343f..ed2576915 100644
--- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileMagicNumber.java
@@ -12,7 +12,7 @@
package cn.hutool.core.io.file;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import java.math.BigInteger;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/file/FileUtil.java b/hutool-core/src/main/java/cn/hutool/core/io/file/FileUtil.java
index 33b672f93..cea9ecdc4 100644
--- a/hutool-core/src/main/java/cn/hutool/core/io/file/FileUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/file/FileUtil.java
@@ -12,6 +12,7 @@
package cn.hutool.core.io.file;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.compress.ZipUtil;
import cn.hutool.core.io.BomReader;
import cn.hutool.core.io.IORuntimeException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/stream/BOMInputStream.java b/hutool-core/src/main/java/cn/hutool/core/io/stream/BOMInputStream.java
index b76f7e35a..fa0319372 100644
--- a/hutool-core/src/main/java/cn/hutool/core/io/stream/BOMInputStream.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/stream/BOMInputStream.java
@@ -12,11 +12,8 @@
package cn.hutool.core.io.stream;
-import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.io.ByteOrderMark;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.lang.Console;
-import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import java.io.IOException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/io/watch/WatchServer.java b/hutool-core/src/main/java/cn/hutool/core/io/watch/WatchServer.java
index cd3fdb9b9..52477c79b 100755
--- a/hutool-core/src/main/java/cn/hutool/core/io/watch/WatchServer.java
+++ b/hutool-core/src/main/java/cn/hutool/core/io/watch/WatchServer.java
@@ -14,7 +14,7 @@ package cn.hutool.core.io.watch;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.func.SerBiConsumer;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.Closeable;
import java.io.IOException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java b/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java
index 8b5f50f42..41ba026ac 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Assert.java
@@ -15,7 +15,7 @@ package cn.hutool.core.lang;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Console.java b/hutool-core/src/main/java/cn/hutool/core/lang/Console.java
index af67787db..02beead47 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Console.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Console.java
@@ -12,7 +12,7 @@
package cn.hutool.core.lang;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
index 707f03adf..88a18fbab 100755
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Singleton.java
@@ -17,7 +17,7 @@ import cn.hutool.core.lang.func.SerSupplier;
import cn.hutool.core.map.SafeConcurrentHashMap;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Set;
import java.util.stream.Collectors;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java b/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java
index 4e9932e23..c14bd423f 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/Tuple.java
@@ -15,7 +15,7 @@ package cn.hutool.core.lang;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.collection.iter.ArrayIter;
import cn.hutool.core.exceptions.CloneRuntimeException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.Serializable;
import java.util.Arrays;
diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/caller/SecurityManagerCaller.java b/hutool-core/src/main/java/cn/hutool/core/lang/caller/SecurityManagerCaller.java
index 67ecb8b6d..b2c88b634 100644
--- a/hutool-core/src/main/java/cn/hutool/core/lang/caller/SecurityManagerCaller.java
+++ b/hutool-core/src/main/java/cn/hutool/core/lang/caller/SecurityManagerCaller.java
@@ -14,7 +14,7 @@ package cn.hutool.core.lang.caller;
import java.io.Serializable;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
/**
* {@link SecurityManager} 方式获取调用者
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapJoiner.java b/hutool-core/src/main/java/cn/hutool/core/map/MapJoiner.java
index 12d85424a..58f438a2d 100755
--- a/hutool-core/src/main/java/cn/hutool/core/map/MapJoiner.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/MapJoiner.java
@@ -14,7 +14,7 @@ package cn.hutool.core.map;
import cn.hutool.core.text.StrJoiner;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Iterator;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapProxy.java b/hutool-core/src/main/java/cn/hutool/core/map/MapProxy.java
index ff3674e4e..1a458fb80 100644
--- a/hutool-core/src/main/java/cn/hutool/core/map/MapProxy.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/MapProxy.java
@@ -16,7 +16,7 @@ import cn.hutool.core.classloader.ClassLoaderUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.getter.TypeGetter;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.BooleanUtil;
import java.io.Serializable;
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
index a070cd19a..31eb9f871 100755
--- a/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/MapUtil.java
@@ -19,7 +19,7 @@ import cn.hutool.core.collection.iter.IterUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.util.AbstractMap;
diff --git a/hutool-core/src/main/java/cn/hutool/core/map/multi/MultiValueMap.java b/hutool-core/src/main/java/cn/hutool/core/map/multi/MultiValueMap.java
index f2ebf55ce..cf2eb86ad 100644
--- a/hutool-core/src/main/java/cn/hutool/core/map/multi/MultiValueMap.java
+++ b/hutool-core/src/main/java/cn/hutool/core/map/multi/MultiValueMap.java
@@ -13,7 +13,7 @@
package cn.hutool.core.map.multi;
import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.*;
import java.util.function.*;
diff --git a/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java b/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java
index 3eefbb7f5..8c96ef188 100644
--- a/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/Arrangement.java
@@ -12,7 +12,7 @@
package cn.hutool.core.math;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.Serializable;
import java.util.ArrayList;
diff --git a/hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java b/hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java
index 25c04532e..a75d304c1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/math/NumberUtil.java
@@ -15,7 +15,7 @@ package cn.hutool.core.math;
import cn.hutool.core.comparator.CompareUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.math.BigDecimal;
diff --git a/hutool-core/src/main/java/cn/hutool/core/net/ssl/SSLContextBuilder.java b/hutool-core/src/main/java/cn/hutool/core/net/ssl/SSLContextBuilder.java
index a96968da0..b9546a9f2 100644
--- a/hutool-core/src/main/java/cn/hutool/core/net/ssl/SSLContextBuilder.java
+++ b/hutool-core/src/main/java/cn/hutool/core/net/ssl/SSLContextBuilder.java
@@ -14,7 +14,7 @@ package cn.hutool.core.net.ssl;
import cn.hutool.core.lang.builder.Builder;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import javax.net.ssl.KeyManager;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java
index 8364ab598..921e57473 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ClassUtil.java
@@ -22,7 +22,7 @@ import cn.hutool.core.net.url.URLDecoder;
import cn.hutool.core.net.url.URLUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ConstructorUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ConstructorUtil.java
index fb33a30f5..c94e14e28 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/ConstructorUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ConstructorUtil.java
@@ -15,7 +15,7 @@ package cn.hutool.core.reflect;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.WeakConcurrentMap;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/FieldUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/FieldUtil.java
index c94e29e1e..c1dbf77ef 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/FieldUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/FieldUtil.java
@@ -19,7 +19,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.map.WeakConcurrentMap;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.lang.reflect.Field;
import java.util.HashMap;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/MethodUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/MethodUtil.java
index c143a5029..2090835f1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/MethodUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/MethodUtil.java
@@ -23,7 +23,7 @@ import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Singleton;
import cn.hutool.core.map.WeakConcurrentMap;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ModifierUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ModifierUtil.java
index 8414b35cf..0147e0665 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/ModifierUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ModifierUtil.java
@@ -13,7 +13,7 @@
package cn.hutool.core.reflect;
import cn.hutool.core.exceptions.UtilException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/ParameterizedTypeImpl.java b/hutool-core/src/main/java/cn/hutool/core/reflect/ParameterizedTypeImpl.java
index 5df65c10e..d3dc8fed4 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/ParameterizedTypeImpl.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/ParameterizedTypeImpl.java
@@ -13,7 +13,7 @@
package cn.hutool.core.reflect;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
diff --git a/hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java b/hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java
index 0016485b0..fab2e8707 100644
--- a/hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/reflect/TypeUtil.java
@@ -12,7 +12,7 @@
package cn.hutool.core.reflect;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.lang.reflect.Field;
diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java b/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java
index cdbf8c790..81aa4f623 100644
--- a/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/stream/CollectorUtil.java
@@ -14,7 +14,7 @@ package cn.hutool.core.stream;
import cn.hutool.core.lang.Opt;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.*;
import java.util.function.*;
diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java b/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java
index 970e09b19..4b7422b24 100644
--- a/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java
+++ b/hutool-core/src/main/java/cn/hutool/core/stream/EasyStream.java
@@ -15,7 +15,7 @@ package cn.hutool.core.stream;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Opt;
import cn.hutool.core.math.NumberUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.math.BigDecimal;
import java.math.RoundingMode;
diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/TerminableWrappedStream.java b/hutool-core/src/main/java/cn/hutool/core/stream/TerminableWrappedStream.java
index d6d79de61..3de7125dd 100644
--- a/hutool-core/src/main/java/cn/hutool/core/stream/TerminableWrappedStream.java
+++ b/hutool-core/src/main/java/cn/hutool/core/stream/TerminableWrappedStream.java
@@ -15,7 +15,7 @@ package cn.hutool.core.stream;
import cn.hutool.core.lang.Opt;
import cn.hutool.core.lang.mutable.MutableInt;
import cn.hutool.core.lang.mutable.MutableObj;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.*;
import java.util.function.*;
diff --git a/hutool-core/src/main/java/cn/hutool/core/stream/TransformableWrappedStream.java b/hutool-core/src/main/java/cn/hutool/core/stream/TransformableWrappedStream.java
index e96b95ef7..00172811c 100644
--- a/hutool-core/src/main/java/cn/hutool/core/stream/TransformableWrappedStream.java
+++ b/hutool-core/src/main/java/cn/hutool/core/stream/TransformableWrappedStream.java
@@ -19,7 +19,7 @@ import cn.hutool.core.lang.mutable.MutableInt;
import cn.hutool.core.lang.mutable.MutableObj;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.map.SafeConcurrentHashMap;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
index 3c2298207..c45b1fdb3 100755
--- a/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/CharSequenceUtil.java
@@ -12,6 +12,7 @@
package cn.hutool.core.text;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.comparator.VersionComparator;
import cn.hutool.core.lang.Assert;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrChecker.java b/hutool-core/src/main/java/cn/hutool/core/text/StrChecker.java
index 6c969033e..05f88a289 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/StrChecker.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/StrChecker.java
@@ -13,7 +13,7 @@
package cn.hutool.core.text;
import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.util.function.Predicate;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrFormatter.java b/hutool-core/src/main/java/cn/hutool/core/text/StrFormatter.java
index 12ded3588..27618ccc1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/StrFormatter.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/StrFormatter.java
@@ -12,7 +12,7 @@
package cn.hutool.core.text;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.util.Map;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrJoiner.java b/hutool-core/src/main/java/cn/hutool/core/text/StrJoiner.java
index 49f4c4dfc..51470b708 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/StrJoiner.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/StrJoiner.java
@@ -15,7 +15,7 @@ package cn.hutool.core.text;
import cn.hutool.core.collection.iter.ArrayIter;
import cn.hutool.core.collection.iter.IterUtil;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.io.IOException;
diff --git a/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java b/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java
index fed90e893..1fd2c5248 100644
--- a/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/text/StrUtil.java
@@ -12,7 +12,7 @@
package cn.hutool.core.text;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import java.io.StringReader;
diff --git a/hutool-core/src/main/java/cn/hutool/core/tree/MapTree.java b/hutool-core/src/main/java/cn/hutool/core/tree/MapTree.java
index 7160cc7c5..eb087e14e 100644
--- a/hutool-core/src/main/java/cn/hutool/core/tree/MapTree.java
+++ b/hutool-core/src/main/java/cn/hutool/core/tree/MapTree.java
@@ -15,7 +15,7 @@ package cn.hutool.core.tree;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.ObjUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java
index 06a94b3bf..8504f2422 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/BooleanUtil.java
@@ -12,6 +12,7 @@
package cn.hutool.core.util;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.collection.SetUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
index aebd65190..02ea86dc1 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
@@ -12,6 +12,7 @@
package cn.hutool.core.util;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.iter.IterUtil;
import cn.hutool.core.convert.Convert;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
index 5b6ad4d34..3c201d038 100755
--- a/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/RandomUtil.java
@@ -12,6 +12,7 @@
package cn.hutool.core.util;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.date.DateField;
diff --git a/hutool-core/src/main/java/cn/hutool/core/util/RuntimeUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/RuntimeUtil.java
index 6be4fa3cf..5b04aec59 100755
--- a/hutool-core/src/main/java/cn/hutool/core/util/RuntimeUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/RuntimeUtil.java
@@ -12,6 +12,7 @@
package cn.hutool.core.util;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
diff --git a/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java
index 398b57a0a..0f8ef1dfe 100755
--- a/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/annotation/AnnotationUtilTest.java
@@ -1,6 +1,6 @@
package cn.hutool.core.annotation;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import lombok.SneakyThrows;
import org.junit.Assert;
diff --git a/hutool-core/src/test/java/cn/hutool/core/bean/BeanPathTest.java b/hutool-core/src/test/java/cn/hutool/core/bean/BeanPathTest.java
index 807069988..37261f5e5 100644
--- a/hutool-core/src/test/java/cn/hutool/core/bean/BeanPathTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/bean/BeanPathTest.java
@@ -3,7 +3,7 @@ package cn.hutool.core.bean;
import cn.hutool.core.lang.test.bean.ExamInfoDict;
import cn.hutool.core.lang.test.bean.UserInfoDict;
import cn.hutool.core.map.Dict;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import lombok.Data;
import org.junit.Assert;
import org.junit.Before;
diff --git a/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java
index 147bb5679..0bd556c52 100755
--- a/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/bean/BeanUtilTest.java
@@ -9,7 +9,7 @@ import cn.hutool.core.map.MapBuilder;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.thread.ThreadUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import lombok.Data;
import lombok.Getter;
diff --git a/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java b/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java
index 4d11d678f..a1bc70e18 100644
--- a/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/collection/PartitionIterTest.java
@@ -3,7 +3,7 @@ package cn.hutool.core.collection;
import cn.hutool.core.collection.iter.LineIter;
import cn.hutool.core.collection.iter.PartitionIter;
import cn.hutool.core.io.resource.ResourceUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-core/src/test/java/cn/hutool/core/reflect/MethodUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/reflect/MethodUtilTest.java
index cdd713d2f..6c8a8a228 100644
--- a/hutool-core/src/test/java/cn/hutool/core/reflect/MethodUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/reflect/MethodUtilTest.java
@@ -4,7 +4,7 @@ import cn.hutool.core.date.StopWatch;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.test.bean.ExamInfoDict;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.SystemUtil;
import lombok.Data;
import org.junit.Assert;
diff --git a/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java
index 7426b1675..7a5ed2dd9 100755
--- a/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java
+++ b/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java
@@ -1,5 +1,6 @@
package cn.hutool.core.util;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.collection.ListUtil;
import org.junit.Assert;
import org.junit.Test;
diff --git a/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPatternBuilder.java b/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPatternBuilder.java
index eca49ade2..04f2fda11 100644
--- a/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPatternBuilder.java
+++ b/hutool-cron/src/main/java/cn/hutool/cron/pattern/CronPatternBuilder.java
@@ -15,7 +15,7 @@ package cn.hutool.cron.pattern;
import cn.hutool.core.lang.builder.Builder;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrJoiner;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
/**
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java
index 592b7f31c..33e15d9b9 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/KeyUtil.java
@@ -16,7 +16,7 @@ import cn.hutool.core.codec.binary.Base64;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/SmUtil.java b/hutool-crypto/src/main/java/cn/hutool/crypto/SmUtil.java
index b434f373a..965c32b4b 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/SmUtil.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/SmUtil.java
@@ -13,7 +13,7 @@
package cn.hutool.crypto;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.crypto.asymmetric.SM2;
import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/Digester.java b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/Digester.java
index 696f1d154..a9c751df6 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/digest/Digester.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/digest/Digester.java
@@ -16,7 +16,7 @@ import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ByteUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.CryptoException;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/AES.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/AES.java
index 88b4ada48..6d6ab3f67 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/AES.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/AES.java
@@ -12,7 +12,7 @@
package cn.hutool.crypto.symmetric;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.crypto.KeyUtil;
import cn.hutool.crypto.Mode;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SM4.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SM4.java
index 8bbd2705f..491a696d3 100644
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SM4.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SM4.java
@@ -13,7 +13,7 @@
package cn.hutool.crypto.symmetric;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.crypto.KeyUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
diff --git a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricCrypto.java b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricCrypto.java
index af5c10f98..40c802dd0 100755
--- a/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricCrypto.java
+++ b/hutool-crypto/src/main/java/cn/hutool/crypto/symmetric/SymmetricCrypto.java
@@ -16,7 +16,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.lang.Opt;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java
index e5e9bafdb..7bcef92e6 100644
--- a/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java
+++ b/hutool-crypto/src/test/java/cn/hutool/crypto/asymmetric/RSATest.java
@@ -3,7 +3,7 @@ package cn.hutool.crypto.asymmetric;
import cn.hutool.core.codec.HexUtil;
import cn.hutool.core.codec.binary.Base64;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ByteUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.RandomUtil;
diff --git a/hutool-db/src/main/java/cn/hutool/db/DialectRunner.java b/hutool-db/src/main/java/cn/hutool/db/DialectRunner.java
index 057db098f..dea0e4d88 100644
--- a/hutool-db/src/main/java/cn/hutool/db/DialectRunner.java
+++ b/hutool-db/src/main/java/cn/hutool/db/DialectRunner.java
@@ -16,7 +16,7 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.dialect.Dialect;
import cn.hutool.db.dialect.DialectFactory;
import cn.hutool.db.handler.NumberHandler;
diff --git a/hutool-db/src/main/java/cn/hutool/db/Entity.java b/hutool-db/src/main/java/cn/hutool/db/Entity.java
index a6779fa55..9b46b12ce 100755
--- a/hutool-db/src/main/java/cn/hutool/db/Entity.java
+++ b/hutool-db/src/main/java/cn/hutool/db/Entity.java
@@ -18,7 +18,7 @@ import cn.hutool.core.lang.func.SerSupplier;
import cn.hutool.core.map.Dict;
import cn.hutool.core.reflect.MethodUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.db.sql.SqlUtil;
diff --git a/hutool-db/src/main/java/cn/hutool/db/Page.java b/hutool-db/src/main/java/cn/hutool/db/Page.java
index 2b2c574d8..5d258e187 100644
--- a/hutool-db/src/main/java/cn/hutool/db/Page.java
+++ b/hutool-db/src/main/java/cn/hutool/db/Page.java
@@ -14,7 +14,7 @@ package cn.hutool.db;
import cn.hutool.core.lang.Segment;
import cn.hutool.core.lang.page.PageInfo;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.sql.Order;
import java.io.Serializable;
diff --git a/hutool-db/src/main/java/cn/hutool/db/StatementUtil.java b/hutool-db/src/main/java/cn/hutool/db/StatementUtil.java
index c8715b74e..a5b4c8886 100644
--- a/hutool-db/src/main/java/cn/hutool/db/StatementUtil.java
+++ b/hutool-db/src/main/java/cn/hutool/db/StatementUtil.java
@@ -17,7 +17,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.handler.ResultSetUtil;
import cn.hutool.db.handler.RsHandler;
import cn.hutool.db.sql.NamedSql;
diff --git a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/AnsiSqlDialect.java b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/AnsiSqlDialect.java
index e2892ab64..64670724a 100644
--- a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/AnsiSqlDialect.java
+++ b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/AnsiSqlDialect.java
@@ -15,7 +15,7 @@ package cn.hutool.db.dialect.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.DbRuntimeException;
import cn.hutool.db.Entity;
import cn.hutool.db.Page;
diff --git a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/H2Dialect.java b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/H2Dialect.java
index e67d88e1b..4b0521056 100644
--- a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/H2Dialect.java
+++ b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/H2Dialect.java
@@ -13,7 +13,7 @@
package cn.hutool.db.dialect.impl;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.db.Entity;
import cn.hutool.db.Page;
diff --git a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/PostgresqlDialect.java b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/PostgresqlDialect.java
index 308640d62..6d7c73177 100644
--- a/hutool-db/src/main/java/cn/hutool/db/dialect/impl/PostgresqlDialect.java
+++ b/hutool-db/src/main/java/cn/hutool/db/dialect/impl/PostgresqlDialect.java
@@ -13,7 +13,7 @@
package cn.hutool.db.dialect.impl;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.db.Entity;
import cn.hutool.db.StatementUtil;
diff --git a/hutool-db/src/main/java/cn/hutool/db/handler/ResultSetUtil.java b/hutool-db/src/main/java/cn/hutool/db/handler/ResultSetUtil.java
index 25a9fff78..c712ba638 100644
--- a/hutool-db/src/main/java/cn/hutool/db/handler/ResultSetUtil.java
+++ b/hutool-db/src/main/java/cn/hutool/db/handler/ResultSetUtil.java
@@ -20,7 +20,7 @@ import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.reflect.MethodUtil;
import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.DbRuntimeException;
import cn.hutool.db.Entity;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java b/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java
index fe56d0660..5d37eb7f3 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/Condition.java
@@ -17,7 +17,7 @@ import cn.hutool.core.exceptions.CloneRuntimeException;
import cn.hutool.core.math.NumberUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import java.io.Serializable;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionBuilder.java b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionBuilder.java
index 557f7c6a0..ffafb1ffe 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionBuilder.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionBuilder.java
@@ -14,7 +14,7 @@ package cn.hutool.db.sql;
import cn.hutool.core.lang.builder.Builder;
import cn.hutool.core.collection.ListUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java
index 735276729..f87ac0a4a 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/ConditionGroup.java
@@ -12,7 +12,7 @@
package cn.hutool.db.sql;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import java.util.List;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/NamedSql.java b/hutool-db/src/main/java/cn/hutool/db/sql/NamedSql.java
index 20f85e540..48efefbaa 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/NamedSql.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/NamedSql.java
@@ -14,7 +14,7 @@ package cn.hutool.db.sql;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import java.util.Collection;
import java.util.LinkedList;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/Query.java b/hutool-db/src/main/java/cn/hutool/db/sql/Query.java
index 352b246ca..81a91f57c 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/Query.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/Query.java
@@ -13,7 +13,7 @@
package cn.hutool.db.sql;
import cn.hutool.core.collection.ListUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.DbRuntimeException;
import cn.hutool.db.Entity;
import cn.hutool.db.Page;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/QuoteWrapper.java b/hutool-db/src/main/java/cn/hutool/db/sql/QuoteWrapper.java
index 9bf070df2..57a9481fc 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/QuoteWrapper.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/QuoteWrapper.java
@@ -15,7 +15,7 @@ package cn.hutool.db.sql;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.Entity;
import java.io.Serializable;
diff --git a/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java b/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java
index 109c40885..cdfd512ec 100644
--- a/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java
+++ b/hutool-db/src/main/java/cn/hutool/db/sql/SqlBuilder.java
@@ -15,7 +15,7 @@ package cn.hutool.db.sql;
import cn.hutool.core.lang.builder.Builder;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.db.DbRuntimeException;
import cn.hutool.db.Entity;
import cn.hutool.db.dialect.DialectName;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/SevenZArchiver.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/SevenZArchiver.java
index 001d6d94d..320939ebf 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/SevenZArchiver.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/SevenZArchiver.java
@@ -16,7 +16,7 @@ import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import org.apache.commons.compress.archivers.sevenz.SevenZOutputFile;
import org.apache.commons.compress.utils.SeekableInMemoryByteChannel;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java
index e8d40d339..ba5f16f61 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/compress/archiver/StreamArchiver.java
@@ -16,7 +16,7 @@ import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.extra.compress.CompressException;
import org.apache.commons.compress.archivers.ArchiveException;
import org.apache.commons.compress.archivers.ArchiveOutputStream;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java
index 8b4f8ae17..8c0d31bc1 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/ftp/Ftp.java
@@ -18,7 +18,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/mail/InternalMailUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/mail/InternalMailUtil.java
index 375856470..2570874eb 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/mail/InternalMailUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/mail/InternalMailUtil.java
@@ -12,7 +12,7 @@
package cn.hutool.extra.mail;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import jakarta.mail.internet.AddressException;
import jakarta.mail.internet.InternetAddress;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java b/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java
index 44c1dcd76..2f10383ed 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/mail/Mail.java
@@ -17,7 +17,7 @@ import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import jakarta.activation.DataHandler;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java b/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java
index cc58d5e7b..b3f3f0253 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/management/JavaInfo.java
@@ -13,7 +13,7 @@
package cn.hutool.extra.management;
import cn.hutool.core.regex.ReUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.SystemUtil;
import java.io.Serializable;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/jpinyin/JPinyinEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/jpinyin/JPinyinEngine.java
index 789cc6026..5f0c67c9c 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/jpinyin/JPinyinEngine.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/jpinyin/JPinyinEngine.java
@@ -12,7 +12,7 @@
package cn.hutool.extra.pinyin.engine.jpinyin;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.extra.pinyin.PinyinEngine;
import com.github.stuxuhai.jpinyin.PinyinException;
import com.github.stuxuhai.jpinyin.PinyinFormat;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/pinyin4j/Pinyin4jEngine.java b/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/pinyin4j/Pinyin4jEngine.java
index f755e1768..74ea611ca 100644
--- a/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/pinyin4j/Pinyin4jEngine.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/pinyin/engine/pinyin4j/Pinyin4jEngine.java
@@ -12,7 +12,7 @@
package cn.hutool.extra.pinyin.engine.pinyin4j;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.extra.pinyin.PinyinEngine;
import cn.hutool.extra.pinyin.PinyinException;
import net.sourceforge.pinyin4j.PinyinHelper;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/servlet/JakartaServletUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/servlet/JakartaServletUtil.java
index 8201fe7f3..7c26fdeb3 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/servlet/JakartaServletUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/servlet/JakartaServletUtil.java
@@ -29,7 +29,7 @@ import cn.hutool.core.net.multipart.MultipartFormData;
import cn.hutool.core.net.multipart.UploadSetting;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjUtil;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/servlet/ServletUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/servlet/ServletUtil.java
index 57284e9a3..0bdfe0211 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/servlet/ServletUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/servlet/ServletUtil.java
@@ -29,7 +29,7 @@ import cn.hutool.core.net.multipart.UploadSetting;
import cn.hutool.core.net.url.URLEncoder;
import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjUtil;
diff --git a/hutool-extra/src/main/java/cn/hutool/extra/spring/SpringUtil.java b/hutool-extra/src/main/java/cn/hutool/extra/spring/SpringUtil.java
index 3a4f1e2a7..7a5034e9a 100755
--- a/hutool-extra/src/main/java/cn/hutool/extra/spring/SpringUtil.java
+++ b/hutool-extra/src/main/java/cn/hutool/extra/spring/SpringUtil.java
@@ -14,7 +14,7 @@ package cn.hutool.extra.spring;
import cn.hutool.core.exceptions.UtilException;
import cn.hutool.core.reflect.TypeReference;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.ListableBeanFactory;
import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
diff --git a/hutool-http/src/main/java/cn/hutool/http/client/HeaderOperation.java b/hutool-http/src/main/java/cn/hutool/http/client/HeaderOperation.java
index 7d178209c..ae3c5cb97 100755
--- a/hutool-http/src/main/java/cn/hutool/http/client/HeaderOperation.java
+++ b/hutool-http/src/main/java/cn/hutool/http/client/HeaderOperation.java
@@ -15,7 +15,7 @@ package cn.hutool.http.client;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.http.meta.Header;
import java.net.HttpCookie;
diff --git a/hutool-http/src/main/java/cn/hutool/http/client/body/FormBody.java b/hutool-http/src/main/java/cn/hutool/http/client/body/FormBody.java
index ab4eb58a5..04a6dca68 100755
--- a/hutool-http/src/main/java/cn/hutool/http/client/body/FormBody.java
+++ b/hutool-http/src/main/java/cn/hutool/http/client/body/FormBody.java
@@ -19,7 +19,7 @@ import cn.hutool.core.io.resource.MultiFileResource;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.map.TableMap;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import java.io.File;
diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient4/HttpClient4Response.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient4/HttpClient4Response.java
index 6cf2313a1..e61bbdbd7 100755
--- a/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient4/HttpClient4Response.java
+++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient4/HttpClient4Response.java
@@ -13,7 +13,7 @@
package cn.hutool.http.client.engine.httpclient4;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.HttpException;
import cn.hutool.http.client.Response;
diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5Response.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5Response.java
index 53fd9e996..83e94b9ef 100755
--- a/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5Response.java
+++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/httpclient5/HttpClient5Response.java
@@ -13,7 +13,7 @@
package cn.hutool.http.client.engine.httpclient5;
import cn.hutool.core.io.IORuntimeException;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.HttpException;
import cn.hutool.http.client.Response;
diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpUrlConnectionUtil.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpUrlConnectionUtil.java
index 21d09698a..3e8444dd6 100755
--- a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpUrlConnectionUtil.java
+++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/HttpUrlConnectionUtil.java
@@ -15,7 +15,7 @@ package cn.hutool.http.client.engine.jdk;
import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.reflect.FieldUtil;
import cn.hutool.core.reflect.ModifierUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.SystemUtil;
import cn.hutool.http.HttpException;
diff --git a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkHttpResponse.java b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkHttpResponse.java
index ca477d95b..17a7142ee 100644
--- a/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkHttpResponse.java
+++ b/hutool-http/src/main/java/cn/hutool/http/client/engine/jdk/JdkHttpResponse.java
@@ -15,7 +15,7 @@ package cn.hutool.http.client.engine.jdk;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.stream.EmptyInputStream;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.HttpException;
import cn.hutool.http.client.Response;
diff --git a/hutool-http/src/main/java/cn/hutool/http/server/HttpServerRequest.java b/hutool-http/src/main/java/cn/hutool/http/server/HttpServerRequest.java
index a1158bc16..e22dab988 100644
--- a/hutool-http/src/main/java/cn/hutool/http/server/HttpServerRequest.java
+++ b/hutool-http/src/main/java/cn/hutool/http/server/HttpServerRequest.java
@@ -22,7 +22,7 @@ import cn.hutool.core.net.multipart.MultipartFormData;
import cn.hutool.core.net.multipart.UploadSetting;
import cn.hutool.core.net.url.UrlQueryUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.http.meta.ContentTypeUtil;
diff --git a/hutool-http/src/main/java/cn/hutool/http/ssl/CustomProtocolsSSLFactory.java b/hutool-http/src/main/java/cn/hutool/http/ssl/CustomProtocolsSSLFactory.java
index 5060138c9..aec649c29 100644
--- a/hutool-http/src/main/java/cn/hutool/http/ssl/CustomProtocolsSSLFactory.java
+++ b/hutool-http/src/main/java/cn/hutool/http/ssl/CustomProtocolsSSLFactory.java
@@ -12,7 +12,7 @@
package cn.hutool.http.ssl;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import javax.net.ssl.SSLSocket;
import javax.net.ssl.SSLSocketFactory;
diff --git a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
index 6513f8c64..a7f9cbaff 100755
--- a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
+++ b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
@@ -25,7 +25,7 @@ import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.json.serialize.GlobalSerializeMapping;
diff --git a/hutool-json/src/main/java/cn/hutool/json/convert/JSONConverter.java b/hutool-json/src/main/java/cn/hutool/json/convert/JSONConverter.java
index 57dd8a2cd..7e78ae756 100644
--- a/hutool-json/src/main/java/cn/hutool/json/convert/JSONConverter.java
+++ b/hutool-json/src/main/java/cn/hutool/json/convert/JSONConverter.java
@@ -24,7 +24,7 @@ import cn.hutool.core.reflect.ConstructorUtil;
import cn.hutool.core.reflect.TypeReference;
import cn.hutool.core.reflect.TypeUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.json.*;
import cn.hutool.json.serialize.JSONDeserializer;
diff --git a/hutool-json/src/main/java/cn/hutool/json/mapper/JSONArrayMapper.java b/hutool-json/src/main/java/cn/hutool/json/mapper/JSONArrayMapper.java
index 03461b1d2..419fb0353 100644
--- a/hutool-json/src/main/java/cn/hutool/json/mapper/JSONArrayMapper.java
+++ b/hutool-json/src/main/java/cn/hutool/json/mapper/JSONArrayMapper.java
@@ -16,7 +16,7 @@ import cn.hutool.core.collection.iter.ArrayIter;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.mutable.Mutable;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONException;
import cn.hutool.json.JSONParser;
diff --git a/hutool-json/src/main/java/cn/hutool/json/xml/JSONXMLSerializer.java b/hutool-json/src/main/java/cn/hutool/json/xml/JSONXMLSerializer.java
index 6b7288b8e..4c1d61aff 100755
--- a/hutool-json/src/main/java/cn/hutool/json/xml/JSONXMLSerializer.java
+++ b/hutool-json/src/main/java/cn/hutool/json/xml/JSONXMLSerializer.java
@@ -12,7 +12,7 @@
package cn.hutool.json.xml;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.text.escape.EscapeUtil;
import cn.hutool.core.text.StrUtil;
diff --git a/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog.java b/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog.java
index 6a7f1362e..9bee47879 100644
--- a/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog.java
+++ b/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog.java
@@ -16,7 +16,7 @@ import org.pmw.tinylog.Level;
import org.pmw.tinylog.LogEntryForwarder;
import org.pmw.tinylog.Logger;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.log.AbstractLog;
diff --git a/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog2.java b/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog2.java
index ead913354..b40daa9f1 100755
--- a/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog2.java
+++ b/hutool-log/src/main/java/cn/hutool/log/dialect/tinylog/TinyLog2.java
@@ -12,7 +12,7 @@
package cn.hutool.log.dialect.tinylog;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.log.AbstractLog;
import org.tinylog.Level;
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvWriter.java b/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvWriter.java
index 24162a292..4f14ff99e 100755
--- a/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvWriter.java
+++ b/hutool-poi/src/main/java/cn/hutool/poi/csv/CsvWriter.java
@@ -21,7 +21,7 @@ import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.map.MapUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjUtil;
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelDateUtil.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelDateUtil.java
index 57ee6e9e7..1c73e2c0c 100644
--- a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelDateUtil.java
+++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelDateUtil.java
@@ -12,7 +12,7 @@
package cn.hutool.poi.excel;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import org.apache.poi.ss.formula.ConditionalFormattingEvaluator;
import org.apache.poi.ss.usermodel.Cell;
diff --git a/hutool-poi/src/main/java/cn/hutool/poi/word/Word07Writer.java b/hutool-poi/src/main/java/cn/hutool/poi/word/Word07Writer.java
index 0faf60d9e..22e082fff 100644
--- a/hutool-poi/src/main/java/cn/hutool/poi/word/Word07Writer.java
+++ b/hutool-poi/src/main/java/cn/hutool/poi/word/Word07Writer.java
@@ -17,7 +17,7 @@ import cn.hutool.core.io.IORuntimeException;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.poi.exceptions.POIException;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java b/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java
index edd790da2..d2a4551fe 100644
--- a/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java
+++ b/hutool-setting/src/main/java/cn/hutool/setting/GroupedSet.java
@@ -16,7 +16,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.net.url.URLUtil;
import cn.hutool.core.text.StrUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharsetUtil;
import java.io.BufferedReader;
diff --git a/hutool-setting/src/main/java/cn/hutool/setting/toml/TomlWriter.java b/hutool-setting/src/main/java/cn/hutool/setting/toml/TomlWriter.java
index 8d8feabe2..978968ca5 100644
--- a/hutool-setting/src/main/java/cn/hutool/setting/toml/TomlWriter.java
+++ b/hutool-setting/src/main/java/cn/hutool/setting/toml/TomlWriter.java
@@ -12,7 +12,7 @@
package cn.hutool.setting.toml;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.CharUtil;
import cn.hutool.setting.SettingException;
diff --git a/hutool-setting/src/test/java/cn/hutool/setting/Issue3008Test.java b/hutool-setting/src/test/java/cn/hutool/setting/Issue3008Test.java
index b5c229342..37645ef20 100644
--- a/hutool-setting/src/test/java/cn/hutool/setting/Issue3008Test.java
+++ b/hutool-setting/src/test/java/cn/hutool/setting/Issue3008Test.java
@@ -1,6 +1,6 @@
package cn.hutool.setting;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.setting.dialect.Props;
import cn.hutool.setting.dialect.PropsUtil;
import lombok.Data;
diff --git a/hutool-swing/src/main/java/cn/hutool/swing/img/BackgroundRemoval.java b/hutool-swing/src/main/java/cn/hutool/swing/img/BackgroundRemoval.java
index 2a25d97c5..e992432d9 100755
--- a/hutool-swing/src/main/java/cn/hutool/swing/img/BackgroundRemoval.java
+++ b/hutool-swing/src/main/java/cn/hutool/swing/img/BackgroundRemoval.java
@@ -13,7 +13,7 @@
package cn.hutool.swing.img;
import cn.hutool.core.io.file.FileTypeUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.swing.img.color.ColorUtil;
diff --git a/hutool-swing/src/main/java/cn/hutool/swing/img/color/ColorUtil.java b/hutool-swing/src/main/java/cn/hutool/swing/img/color/ColorUtil.java
index 27731eed1..ed572868e 100644
--- a/hutool-swing/src/main/java/cn/hutool/swing/img/color/ColorUtil.java
+++ b/hutool-swing/src/main/java/cn/hutool/swing/img/color/ColorUtil.java
@@ -19,7 +19,7 @@ import cn.hutool.core.lang.ansi.AnsiElement;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrUtil;
import cn.hutool.core.text.split.SplitUtil;
-import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.array.ArrayUtil;
import cn.hutool.core.util.RandomUtil;
import java.awt.Color;