diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java index a7509d317..f76fb3c04 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java @@ -22,7 +22,7 @@ import java.util.Set; /** * 数组工具类 - * + * * @author Looly * */ @@ -34,7 +34,7 @@ public class ArrayUtil { // ---------------------------------------------------------------------- isEmpty /** * 数组是否为空 - * + * * @param 数组元素类型 * @param array 数组 * @return 是否为空 @@ -61,7 +61,7 @@ public class ArrayUtil { * 此方法会匹配单一对象,如果此对象为{@code null}则返回true
* 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回false
* 如果此对象为数组对象,数组长度大于0情况下返回false,否则返回true - * + * * @param array 数组 * @return 是否为空 */ @@ -72,12 +72,12 @@ public class ArrayUtil { } return false; } - return true; + return true; } /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -87,7 +87,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -97,7 +97,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -107,7 +107,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -117,7 +117,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -127,7 +127,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -137,7 +137,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -147,7 +147,7 @@ public class ArrayUtil { /** * 数组是否为空 - * + * * @param array 数组 * @return 是否为空 */ @@ -158,7 +158,7 @@ public class ArrayUtil { // ---------------------------------------------------------------------- isNotEmpty /** * 数组是否为非空 - * + * * @param 数组元素类型 * @param array 数组 * @return 是否为非空 @@ -172,7 +172,7 @@ public class ArrayUtil { * 此方法会匹配单一对象,如果此对象为{@code null}则返回false
* 如果此对象为非数组,理解为此对象为数组的第一个元素,则返回true
* 如果此对象为数组对象,数组长度大于0情况下返回true,否则返回false - * + * * @param array 数组 * @return 是否为非空 */ @@ -182,7 +182,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -192,7 +192,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -202,7 +202,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -212,7 +212,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -222,7 +222,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -232,7 +232,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -242,7 +242,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -252,7 +252,7 @@ public class ArrayUtil { /** * 数组是否为非空 - * + * * @param array 数组 * @return 是否为非空 */ @@ -262,7 +262,7 @@ public class ArrayUtil { /** * 是否包含{@code null}元素 - * + * * @param 数组元素类型 * @param array 被检查的数组 * @return 是否包含{@code null}元素 @@ -282,7 +282,7 @@ public class ArrayUtil { /** * 返回数组中第一个非空元素 - * + * * @param 数组元素类型 * @param array 数组 * @return 非空元素,如果不存在非空元素或数组为空,返回{@code null} @@ -302,7 +302,7 @@ public class ArrayUtil { /** * 新建一个空数组 - * + * * @param 数组元素类型 * @param componentType 元素类型 * @param newSize 大小 @@ -315,7 +315,7 @@ public class ArrayUtil { /** * 新建一个空数组 - * + * * @param newSize 大小 * @return 空数组 * @since 3.3.0 @@ -326,7 +326,7 @@ public class ArrayUtil { /** * 获取数组对象的元素类型 - * + * * @param array 数组对象 * @return 元素类型 * @since 3.2.2 @@ -337,7 +337,7 @@ public class ArrayUtil { /** * 获取数组对象的元素类型 - * + * * @param arrayClass 数组类 * @return 元素类型 * @since 3.2.2 @@ -349,7 +349,7 @@ public class ArrayUtil { /** * 根据数组元素类型,获取数组的类型
* 方法是通过创建一个空数组从而获取其类型 - * + * * @param componentType 数组元素类型 * @return 数组类型 * @since 3.2.2 @@ -362,7 +362,7 @@ public class ArrayUtil { * 强转数组类型
* 强制转换的前提是数组元素类型可被强制转换
* 强制转换后会生成一个新数组 - * + * * @param type 数组类型或数组元素类型 * @param arrayObj 原数组 * @return 转换后的数组类型 @@ -387,11 +387,11 @@ public class ArrayUtil { System.arraycopy(array, 0, result, 0, array.length); return result; } - + /** * 将新元素添加到已有数组中
* 添加新元素会生成一个新的数组,不影响原数组 - * + * * @param 数组元素类型 * @param buffer 已有数组 * @param newElements 新元素 @@ -404,11 +404,11 @@ public class ArrayUtil { } return insert(buffer, buffer.length, newElements); } - + /** * 将新元素添加到已有数组中
* 添加新元素会生成一个新的数组,不影响原数组 - * + * * @param 数组元素类型 * @param array 已有数组 * @param newElements 新元素 @@ -421,10 +421,10 @@ public class ArrayUtil { } return insert(array, length(array), newElements); } - + /** * 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加 - * + * * @param 数组元素类型 * @param buffer 已有数组 * @param index 位置,大于长度追加,否则替换 @@ -440,10 +440,10 @@ public class ArrayUtil { return append(buffer, value); } } - + /** * 将元素值设置为数组的某个位置,当给定的index大于数组长度,则追加 - * + * * @param array 已有数组 * @param index 位置,大于长度追加,否则替换 * @param value 新值 @@ -463,7 +463,7 @@ public class ArrayUtil { * 将新元素插入到到已有数组中的某个位置
* 添加新元素会生成一个新的数组,不影响原数组
* 如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 - * + * * @param 数组元素类型 * @param buffer 已有数组 * @param index 插入位置,此位置为对应此位置元素之前的空档 @@ -475,12 +475,12 @@ public class ArrayUtil { public static T[] insert(T[] buffer, int index, T... newElements) { return (T[]) insert((Object)buffer, index, newElements); } - + /** * 将新元素插入到到已有数组中的某个位置
* 添加新元素会生成一个新的数组,不影响原数组
* 如果插入位置为为负数,从原数组从后向前计数,若大于原数组长度,则空白处用null填充 - * + * * @param 数组元素类型 * @param array 已有数组 * @param index 插入位置,此位置为对应此位置元素之前的空档 @@ -496,12 +496,12 @@ public class ArrayUtil { if(isEmpty(array)) { return newElements; } - + final int len = length(array); if (index < 0) { index = (index % len) + len; } - + final T[] result = newArray(array.getClass().getComponentType(), Math.max(len, index) + newElements.length); System.arraycopy(array, 0, result, 0, Math.min(len, index)); System.arraycopy(newElements, 0, result, index, newElements.length); @@ -514,7 +514,7 @@ public class ArrayUtil { /** * 生成一个新的重新设置大小的数组
* 调整大小后拷贝原数组到新数组下。扩大则占位前N个位置,缩小则截断 - * + * * @param 数组元素类型 * @param data 原数组 * @param newSize 新的数组大小 @@ -581,7 +581,7 @@ public class ArrayUtil { /** * 生成一个新的重新设置大小的数组
* 新数组的类型为原数组的类型,调整大小后拷贝原数组到新数组下。扩大则占位前N个位置,缩小则截断 - * + * * @param 数组元素类型 * @param buffer 原数组 * @param newSize 新的数组大小 @@ -594,7 +594,7 @@ public class ArrayUtil { /** * 将多个数组合并在一起
* 忽略null的数组 - * + * * @param 数组元素类型 * @param arrays 数组集合 * @return 合并后的数组 @@ -882,7 +882,7 @@ public class ArrayUtil { /** * 包装 {@link System#arraycopy(Object, int, Object, int, int)}
* 数组复制 - * + * * @param src 源数组 * @param srcPos 源数组开始位置 * @param dest 目标数组 @@ -900,7 +900,7 @@ public class ArrayUtil { /** * 包装 {@link System#arraycopy(Object, int, Object, int, int)}
* 数组复制,缘数组和目标数组都是从位置0开始复制 - * + * * @param src 源数组 * @param dest 目标数组 * @param length 拷贝数组长度 @@ -915,7 +915,7 @@ public class ArrayUtil { /** * 克隆数组 - * + * * @param 数组元素类型 * @param array 被克隆的数组 * @return 新数组 @@ -929,7 +929,7 @@ public class ArrayUtil { /** * 克隆数组,如果非数组返回null - * + * * @param 数组元素类型 * @param obj 数组对象 * @return 克隆后的数组对象 @@ -958,7 +958,7 @@ public class ArrayUtil { /** * 生成一个从0开始的数字列表
- * + * * @param excludedEnd 结束的数字(不包含) * @return 数字列表 */ @@ -969,7 +969,7 @@ public class ArrayUtil { /** * 生成一个数字列表
* 自动判定正序反序 - * + * * @param includedStart 开始的数字(包含) * @param excludedEnd 结束的数字(不包含) * @return 数字列表 @@ -981,7 +981,7 @@ public class ArrayUtil { /** * 生成一个数字列表
* 自动判定正序反序 - * + * * @param includedStart 开始的数字(包含) * @param excludedEnd 结束的数字(不包含) * @param step 步进 @@ -1013,7 +1013,7 @@ public class ArrayUtil { /** * 拆分byte数组为几个等份(最后一份可能小于len) - * + * * @param array 数组 * @param len 每个小节的长度 * @return 拆分后的数组 @@ -1042,12 +1042,12 @@ public class ArrayUtil { /** * 过滤
* 过滤过程通过传入的Editor实现来返回需要的元素内容,这个Editor实现可以实现以下功能: - * + * *
 	 * 1、过滤出需要的对象,如果返回null表示这个元素对象抛弃
 	 * 2、修改元素对象,返回集合中为修改后的对象
 	 * 
- * + * * @param 数组元素类型 * @param array 数组 * @param editor 编辑器接口 @@ -1089,11 +1089,11 @@ public class ArrayUtil { /** * 过滤
* 过滤过程通过传入的Filter实现来过滤返回需要的元素内容,这个Filter实现可以实现以下功能: - * + * *
 	 * 1、过滤出需要的对象,{@link Filter#accept(Object)}方法返回true的对象将被加入结果集合中
 	 * 
- * + * * @param 数组元素类型 * @param array 数组 * @param filter 过滤器接口,用于定义过滤规则,null表示不过滤,返回原数组 @@ -1104,7 +1104,7 @@ public class ArrayUtil { if(null == filter) { return array; } - + final ArrayList list = new ArrayList<>(array.length); for (T t : array) { if (filter.accept(t)) { @@ -1156,7 +1156,7 @@ public class ArrayUtil { /** * 数组元素中的null转换为"" - * + * * @param array 数组 * @return 新数组 * @since 3.2.1 @@ -1172,7 +1172,7 @@ public class ArrayUtil { * values = [1,2,3,4]
* 则得到的Map是 {a=1, b=2, c=3, d=4}
* 如果两个数组长度不同,则只对应最短部分 - * + * * @param Key类型 * @param Value类型 * @param keys 键列表 @@ -1202,7 +1202,7 @@ public class ArrayUtil { * values = [1,2,3,4]
* 则得到的Map是 {a=1, b=2, c=3, d=4}
* 如果两个数组长度不同,则只对应最短部分 - * + * * @param Key类型 * @param Value类型 * @param keys 键列表 @@ -1216,7 +1216,7 @@ public class ArrayUtil { // ------------------------------------------------------------------- indexOf and lastIndexOf and contains /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param 数组类型 * @param array 数组 * @param value 被检查的元素 @@ -1236,7 +1236,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,忽略大小写,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1255,7 +1255,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param 数组类型 * @param array 数组 * @param value 被检查的元素 @@ -1275,9 +1275,9 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param 数组元素类型 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1285,12 +1285,12 @@ public class ArrayUtil { public static boolean contains(T[] array, T value) { return indexOf(array, value) > INDEX_NOT_FOUND; } - + /** * 数组中是否包含指定元素中的任意一个 - * + * * @param 数组元素类型 - * + * * @param array 数组 * @param values 被检查的多个元素 * @return 是否包含指定元素中的任意一个 @@ -1308,7 +1308,7 @@ public class ArrayUtil { /** * 数组中是否包含元素,忽略大小写 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1320,7 +1320,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1339,7 +1339,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1358,7 +1358,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1370,7 +1370,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1389,7 +1389,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1408,7 +1408,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1420,7 +1420,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1439,7 +1439,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1458,7 +1458,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1470,7 +1470,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1489,7 +1489,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1508,7 +1508,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1520,7 +1520,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1539,7 +1539,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1558,7 +1558,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1570,7 +1570,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1589,7 +1589,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1608,7 +1608,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1620,7 +1620,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1639,7 +1639,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1658,7 +1658,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1670,7 +1670,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1689,7 +1689,7 @@ public class ArrayUtil { /** * 返回数组中指定元素所在最后的位置,未找到返回{@link #INDEX_NOT_FOUND} - * + * * @param array 数组 * @param value 被检查的元素 * @return 数组中指定元素所在位置,未找到返回{@link #INDEX_NOT_FOUND} @@ -1708,7 +1708,7 @@ public class ArrayUtil { /** * 数组中是否包含元素 - * + * * @param array 数组 * @param value 被检查的元素 * @return 是否包含 @@ -1721,7 +1721,7 @@ public class ArrayUtil { // ------------------------------------------------------------------- Wrap and unwrap /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -1743,7 +1743,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -1765,7 +1765,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -1787,7 +1787,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -1809,7 +1809,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -1831,7 +1831,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -1853,7 +1853,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -1875,7 +1875,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -1897,7 +1897,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -1919,7 +1919,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -1941,7 +1941,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -1963,7 +1963,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -1985,7 +1985,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -2007,7 +2007,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -2029,7 +2029,7 @@ public class ArrayUtil { /** * 将原始类型数组包装为包装类型 - * + * * @param values 原始类型数组 * @return 包装类型数组 */ @@ -2051,7 +2051,7 @@ public class ArrayUtil { /** * 包装类数组转为原始类型数组 - * + * * @param values 包装类型数组 * @return 原始类型数组 */ @@ -2073,7 +2073,7 @@ public class ArrayUtil { /** * 包装数组对象 - * + * * @param obj 对象,可以是对象数组或者基本类型数组 * @return 包装类型数组或对象数组 * @throws UtilException 对象为非数组 @@ -2114,7 +2114,7 @@ public class ArrayUtil { /** * 对象是否为数组对象 - * + * * @param obj 对象 * @return 是否为数组对象,如果为{@code null} 返回false */ @@ -2129,7 +2129,7 @@ public class ArrayUtil { /** * 获取数组对象中指定index的值,支持负数,例如-1表示倒数第一个值
* 如果数组下标越界,返回null - * + * * @param 数组元素类型 * @param array 数组对象 * @param index 下标,支持负数 @@ -2141,7 +2141,7 @@ public class ArrayUtil { if(null == array) { return null; } - + if (index < 0) { index += Array.getLength(array); } @@ -2154,7 +2154,7 @@ public class ArrayUtil { /** * 获取数组中指定多个下标元素值,组成新数组 - * + * * @param 数组元素类型 * @param array 数组 * @param indexes 下标列表 @@ -2164,14 +2164,14 @@ public class ArrayUtil { if(null == array) { return null; } - + final T[] result = newArray(array.getClass().getComponentType(), indexes.length); for (int i : indexes) { result[i] = get(array, i); } return result; } - + /** * 获取子数组 * @@ -2207,10 +2207,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2242,10 +2242,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2277,10 +2277,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2312,10 +2312,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2347,10 +2347,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2382,10 +2382,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2417,10 +2417,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2452,10 +2452,10 @@ public class ArrayUtil { } return Arrays.copyOfRange(array, start, end); } - + /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2490,7 +2490,7 @@ public class ArrayUtil { /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2503,7 +2503,7 @@ public class ArrayUtil { /** * 获取子数组 - * + * * @param array 数组 * @param start 开始位置(包括) * @param end 结束位置(不包括) @@ -2548,7 +2548,7 @@ public class ArrayUtil { /** * 数组或集合转String - * + * * @param obj 集合或数组对象 * @return 数组字符串,与集合转字符串格式相同 */ @@ -2588,7 +2588,7 @@ public class ArrayUtil { /** * 获取数组长度
* 如果参数为{@code null},返回0 - * + * *
 	 * ArrayUtil.length(null)            = 0
 	 * ArrayUtil.length([])              = 0
@@ -2597,7 +2597,7 @@ public class ArrayUtil {
 	 * ArrayUtil.length([1, 2, 3])       = 3
 	 * ArrayUtil.length(["a", "b", "c"]) = 3
 	 * 
- * + * * @param array 数组对象 * @return 数组长度 * @throws IllegalArgumentException 如果参数不为数组,抛出此异常 @@ -2610,10 +2610,10 @@ public class ArrayUtil { } return Array.getLength(array); } - + /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param 被处理的集合 * @param array 数组 * @param conjunction 分隔符 @@ -2625,7 +2625,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param 被处理的集合 * @param array 数组 * @param conjunction 分隔符 @@ -2695,7 +2695,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2720,7 +2720,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2745,7 +2745,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2770,7 +2770,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2795,7 +2795,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2820,7 +2820,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2845,7 +2845,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2870,7 +2870,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2895,7 +2895,7 @@ public class ArrayUtil { /** * 以 conjunction 为分隔符将数组转换为字符串 - * + * * @param array 数组 * @param conjunction 分隔符 * @return 连接后的字符串 @@ -2934,7 +2934,7 @@ public class ArrayUtil { /** * {@link ByteBuffer} 转byte数组 - * + * * @param bytebuffer {@link ByteBuffer} * @return byte数组 * @since 3.0.1 @@ -2955,7 +2955,7 @@ public class ArrayUtil { /** * 将集合转为数组 - * + * * @param 数组元素类型 * @param iterator {@link Iterator} * @param componentType 集合元素类型 @@ -2968,7 +2968,7 @@ public class ArrayUtil { /** * 将集合转为数组 - * + * * @param 数组元素类型 * @param iterable {@link Iterable} * @param componentType 集合元素类型 @@ -2981,7 +2981,7 @@ public class ArrayUtil { /** * 将集合转为数组 - * + * * @param 数组元素类型 * @param collection 集合 * @param componentType 集合元素类型 @@ -2996,9 +2996,9 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param 数组元素类型 - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3013,7 +3013,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3027,7 +3027,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3041,7 +3041,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3055,7 +3055,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3069,7 +3069,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3083,7 +3083,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3097,7 +3097,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3111,7 +3111,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3125,7 +3125,7 @@ public class ArrayUtil { /** * 移除数组中对应位置的元素
* copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param index 位置,如果位置小于0或者大于长度,返回原数组 * @return 去掉指定元素后的新数组或原数组 @@ -3156,7 +3156,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param 数组元素类型 * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 @@ -3171,7 +3171,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3185,7 +3185,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3199,7 +3199,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3213,7 +3213,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3227,7 +3227,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3241,7 +3241,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3255,7 +3255,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3269,7 +3269,7 @@ public class ArrayUtil { /** * 移除数组中指定的元素
* 只会移除匹配到的第一个元素 copy from commons-lang - * + * * @param array 数组对象,可以是对象数组,也可以原始类型数组 * @param element 要移除的元素 * @return 去掉指定元素后的新数组或原数组 @@ -3284,7 +3284,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param 数组元素类型 * @param array 数组,会变更 * @param startIndexInclusive 开始位置(包含) @@ -3311,7 +3311,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param 数组元素类型 * @param array 数组,会变更 * @return 变更后的原数组 @@ -3323,7 +3323,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3349,7 +3349,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3360,7 +3360,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3386,7 +3386,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3397,7 +3397,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3423,7 +3423,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3434,7 +3434,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3460,7 +3460,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3471,7 +3471,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3497,7 +3497,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3508,7 +3508,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3534,7 +3534,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3545,7 +3545,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3571,7 +3571,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3582,7 +3582,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @param startIndexInclusive 其实位置(包含) * @param endIndexExclusive 结束位置(不包含) @@ -3608,7 +3608,7 @@ public class ArrayUtil { /** * 反转数组,会变更原数组 - * + * * @param array 数组,会变更 * @return 变更后的原数组 * @since 3.0.9 @@ -3632,7 +3632,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param 元素类型 * @param numberArray 数字数组 * @param comparator 比较器,null按照默认比较 @@ -3654,7 +3654,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3674,7 +3674,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3694,7 +3694,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3714,7 +3714,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3734,7 +3734,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3754,7 +3754,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3774,7 +3774,7 @@ public class ArrayUtil { /** * 取最小值 - * + * * @param numberArray 数字数组 * @return 最小值 * @since 3.0.9 @@ -3806,7 +3806,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param 元素类型 * @param numberArray 数字数组 * @param comparator 比较器,null表示默认比较器 @@ -3828,7 +3828,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3848,7 +3848,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3868,7 +3868,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3888,7 +3888,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3908,7 +3908,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3928,7 +3928,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3948,7 +3948,7 @@ public class ArrayUtil { /** * 取最大值 - * + * * @param numberArray 数字数组 * @return 最大值 * @since 3.0.9 @@ -3968,7 +3968,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -3987,7 +3987,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4006,7 +4006,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4025,7 +4025,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4044,7 +4044,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4063,7 +4063,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4082,7 +4082,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4101,7 +4101,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组 * @param index1 位置1 * @param index2 位置2 @@ -4120,7 +4120,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param 元素类型 * @param array 数组 * @param index1 位置1 @@ -4140,7 +4140,7 @@ public class ArrayUtil { /** * 交换数组中两个位置的值 - * + * * @param array 数组对象 * @param index1 位置1 * @param index2 位置2 @@ -4156,7 +4156,7 @@ public class ArrayUtil { Array.set(array, index2, tmp); return array; } - + /** * 计算{@code null}或空元素对象的个数,通过{@link ObjectUtil#isEmpty(Object)} 判断元素 * @@ -4175,7 +4175,7 @@ public class ArrayUtil { } return count; } - + /** * 是否存在{@code null}或空对象,通过{@link ObjectUtil#isEmpty(Object)} 判断元素 * @@ -4193,7 +4193,7 @@ public class ArrayUtil { } return false; } - + /** * 是否存都为{@code null}或空对象,通过{@link ObjectUtil#isEmpty(Object)} 判断元素 * @@ -4215,7 +4215,7 @@ public class ArrayUtil { public static boolean isAllNotEmpty(Object... args) { return false == hasEmpty(args); } - + /** * 去重数组中的元素,去重后生成新的数组,原数组不变
* 此方法通过{@link LinkedHashSet} 去重 @@ -4229,9 +4229,32 @@ public class ArrayUtil { if(isEmpty(array)) { return array; } - + final Set set = new LinkedHashSet<>(array.length, 1); Collections.addAll(set, array); return toArray(set, (Class)getComponentType(array)); } + + + + + /** + * 多个字段是否全部不为null + * + * @param 数组元素类型 + * @param array 被检查的数组 + * @return 多个字段是否全部不为null + * @since 5.3.11 + */ + @SuppressWarnings("unchecked") + public static boolean isAllNotNull(T... array) { + if (isNotEmpty(array)) { + for (T element : array) { + if (null == element) { + return false; + } + } + } + return true; + } } 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 e9df98f16..2fb31983a 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/ArrayUtilTest.java @@ -289,4 +289,12 @@ public class ArrayUtilTest { final int[] ints = ArrayUtil.addAll(new int[]{1, 2, 3}, new int[]{4, 5, 6}); Assert.assertArrayEquals(new int[]{1,2,3,4,5,6}, ints); } + + @Test + public void isAllNotNullTest(){ + String[] allNotNull = {"aa", "bb", "cc", "dd", "bb", "dd"}; + Assert.assertTrue(ArrayUtil.isAllNotNull(allNotNull)); + String[] hasNull = {"aa", "bb", "cc", null, "bb", "dd"}; + Assert.assertFalse(ArrayUtil.isAllNotNull(hasNull)); + } }