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 068e8ddda..adb152907 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java @@ -13,16 +13,7 @@ import cn.hutool.core.text.StrUtil; import java.lang.reflect.Array; import java.nio.ByteBuffer; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; +import java.util.*; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.UnaryOperator; @@ -2088,4 +2079,20 @@ public class ArrayUtil extends PrimitiveArrayUtil { return true; } + + /** + * 判断数组中是否有相同元素 + *

若传入空数组,则返回{@code false}

+ * @param 数组元素类型 + * @param array 数组 + * @return 数组是否有相同元素 + * @since 6.0.0 + */ + public static Boolean hasSameElement(final T[] array) { + if (isEmpty(array)) { + return false; + } + Set elementSet = new HashSet<>(Arrays.asList(array)); + return elementSet.size() != array.length; + } } 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 d2223bbb2..4e0c9e6f3 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 @@ -673,4 +673,23 @@ public class ArrayUtilTest { Assert.assertTrue(ArrayUtil.isSorted(f, Integer::compareTo)); Assert.assertFalse(ArrayUtil.isSorted(f, null)); } + + @Test + public void hasSameElementTest() { + final Integer[] a = {1, 1}; + Assert.assertTrue(ArrayUtil.hasSameElement(a)); + + final String[] b = {"a", "b", "c"}; + Assert.assertFalse(ArrayUtil.hasSameElement(b)); + + final Object[] c = new Object[]{"1", "2", 2, 4D}; + Assert.assertFalse(ArrayUtil.hasSameElement(c)); + + final Object[] d = new Object[]{"1", "2", "2", 4D}; + Assert.assertTrue(ArrayUtil.hasSameElement(d)); + + final Object[] e = new Object[]{"1", 2, 2, 4D}; + Assert.assertTrue(ArrayUtil.hasSameElement(e)); + + } }