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));
+
+ }
}