mirror of
https://gitee.com/chinabugotech/hutool.git
synced 2025-05-09 23:51:34 +08:00
Merge pull request #2951 from hhhhhxm/v6-dev-2023-03-03-01
新增一个判断数组是否存在重复元素的方法
This commit is contained in:
commit
3c35654177
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断数组中是否有相同元素
|
||||
* <p>若传入空数组,则返回{@code false}</p>
|
||||
* @param <T> 数组元素类型
|
||||
* @param array 数组
|
||||
* @return 数组是否有相同元素
|
||||
* @since 6.0.0
|
||||
*/
|
||||
public static <T> Boolean hasSameElement(final T[] array) {
|
||||
if (isEmpty(array)) {
|
||||
return false;
|
||||
}
|
||||
Set<T> elementSet = new HashSet<>(Arrays.asList(array));
|
||||
return elementSet.size() != array.length;
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user