diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java index 40be17855..804995e74 100644 --- a/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java +++ b/hutool-core/src/main/java/org/dromara/hutool/core/array/ArrayUtil.java @@ -42,6 +42,7 @@ import java.util.stream.Collectors; public class ArrayUtil extends PrimitiveArrayUtil { // region ----- ofArray + /** * 转为数组,如果values为数组,返回,否则返回一个只有values一个元素的数组
* 注意:values的元素类型或其本身类型必须和提供的elementType完全一致 @@ -64,7 +65,7 @@ public class ArrayUtil extends PrimitiveArrayUtil { * 包装单一元素为数组 * * @param 数组类型 - * @param value 元素值 + * @param value 元素值 * @param elementType 数组元素类型,{@code null}表示使用value的类型 * @return 数组 */ @@ -777,18 +778,18 @@ public class ArrayUtil extends PrimitiveArrayUtil { * * * @param 数组元素类型 - * @param buffer 已有数组 + * @param array 已有数组 * @param index 位置 * @param values 新值 * @return 新数组或原有数组 * @since 5.7.23 */ @SuppressWarnings({"unchecked"}) - public static T[] replace(final T[] buffer, final int index, final T... values) { - if (isEmpty(buffer)) { + public static T[] replace(final T[] array, final int index, final T... values) { + if (isEmpty(array)) { return values; } - return ArrayWrapper.of(buffer).replace(index, values).getRaw(); + return ArrayWrapper.of(array).replace(index, values).getRaw(); } /** diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java index e39fae3b1..5c2a4ffd3 100644 --- a/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java +++ b/hutool-core/src/test/java/org/dromara/hutool/core/array/ArrayUtilTest.java @@ -561,6 +561,20 @@ public class ArrayUtilTest { assertArrayEquals(new Object[]{4, "3", '2', "1"}, reverse); } + @Test + void testRemoveWithValidIndex() { + final String[] array = {"a", "b", "c", "d"}; + final String[] result = ArrayUtil.remove(array, 1); + assertArrayEquals(new String[]{"a", "c", "d"}, result); + } + + @Test + void testRemoveEleFromObjectArray() { + final Integer[] array = {1, 2, 3, 2, 4}; + final Integer[] expected = {1, 3, 2, 4}; + Assertions.assertArrayEquals(expected, ArrayUtil.removeEle(array, 2)); + } + @Test public void removeEmptyTest() { final String[] a = {"a", "b", "", null, " ", "c"}; @@ -643,7 +657,7 @@ public class ArrayUtilTest { final String[] a = {"1", "2", "3", "4"}; final String[] b = {"a", "b", "c"}; - // 在小于0的位置,-1的位置插入,返回b+a,新数组 + // 在小于0的位置,相当于在a前插入b,返回b+a,新数组 String[] result = ArrayUtil.replace(a, -1, b); assertArrayEquals(new String[]{"a", "b", "c", "1", "2", "3", "4"}, result); @@ -1035,4 +1049,26 @@ public class ArrayUtilTest { // Then assertArrayEquals(list.toArray(new String[0]), result, "The array should match the list contents."); } + + @Test + public void testResizeWithSmallerSize() { + // Setup + final Integer[] originalArray = {1, 2, 3, 4, 5}; + // Execute + final Integer[] resizedArray = ArrayUtil.resize(originalArray, 3); + // Assert + assertEquals(3, resizedArray.length); + assertArrayEquals(new Integer[]{1, 2, 3}, resizedArray); + } + + @Test + public void testResizeWithLargerSize() { + // Setup + final Integer[] originalArray = {1, 2, 3}; + // Execute + final Integer[] resizedArray = ArrayUtil.resize(originalArray, 5); + // Assert + assertEquals(5, resizedArray.length); + assertArrayEquals(new Integer[]{1, 2, 3, null, null}, resizedArray); + } }