From f7b59ac7443efabbe15a33bf6fc417f3302c3b27 Mon Sep 17 00:00:00 2001 From: huangxingming Date: Mon, 6 Mar 2023 23:16:40 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E6=98=AF=E5=90=A6=E6=9C=89=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=85=83=E7=B4=A0=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/util/ArrayUtil.java | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) 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..a5f8b34fc 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,23 @@ 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<>(); + for (T element : array) { + elementSet.add(element); + } + return !(elementSet.size() == array.length); + } } From f79e1e31fbb73956a5efe7c451b5b640f83413d5 Mon Sep 17 00:00:00 2001 From: huangxingming Date: Mon, 6 Mar 2023 23:31:28 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=95=B0=E7=BB=84=E6=98=AF=E5=90=A6=E6=9C=89=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E5=85=83=E7=B4=A0=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hutool/core/util/ArrayUtilTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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)); + + } } From 94e6be4bf04c1b2f6fb7c0b4b79a11ff45571303 Mon Sep 17 00:00:00 2001 From: huangxingming Date: Tue, 7 Mar 2023 13:49:42 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dcomment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 a5f8b34fc..6b97fb320 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 @@ -2092,10 +2092,10 @@ public class ArrayUtil extends PrimitiveArrayUtil { if (isEmpty(array)) { return false; } - Set elementSet = new HashSet<>(); + Set elementSet = new HashSet<>(Arrays.asList(array)); for (T element : array) { elementSet.add(element); } - return !(elementSet.size() == array.length); + return elementSet.size() != array.length; } } From 00b064ba4686a07e8a189f027e7a0dff526d9851 Mon Sep 17 00:00:00 2001 From: huangxingming Date: Tue, 7 Mar 2023 13:50:41 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dcomment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hutool-core/src/main/java/cn/hutool/core/util/ArrayUtil.java | 3 --- 1 file changed, 3 deletions(-) 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 6b97fb320..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 @@ -2093,9 +2093,6 @@ public class ArrayUtil extends PrimitiveArrayUtil { return false; } Set elementSet = new HashSet<>(Arrays.asList(array)); - for (T element : array) { - elementSet.add(element); - } return elementSet.size() != array.length; } }