Java判断有重复数

Java判断有重复数

作者:Elara发布时间:2026-04-13 10:01阅读时长:16 分钟阅读次数:5
常见问答
Q
如何在Java中检测数组中是否存在重复元素?

我有一个整数数组,想判断其中是否包含重复的数字,应该用什么方法实现?

A

使用HashSet检测数组中的重复元素

可以利用HashSet的数据结构特性,遍历数组时将元素逐一添加到HashSet中,如果添加失败,说明存在重复元素。示例代码:

public boolean hasDuplicate(int[] nums) {
    Set<Integer> set = new HashSet<>();
    for (int num : nums) {
        if (!set.add(num)) {
            return true; // 发现重复元素
        }
    }
    return false; // 无重复
}
Q
使用Java Streams判断集合中是否含有重复值的方法有哪些?

在Java 8及以上版本,怎么用流(Stream)来判断列表或数组里是否有重复的数?

A

利用Java Streams的distinct()方法比较元素数量

可以将集合转换成流,使用distinct()方法去除重复元素,然后比较处理前后元素数量,如果数量不同就说明有重复元素。示例代码如下:

import java.util.Arrays;

public boolean containsDuplicate(int[] nums) {
    long distinctCount = Arrays.stream(nums).distinct().count();
    return distinctCount < nums.length;
}
Q
如何判断一个字符串数组中是否有重复的字符串?

除了数字数组,我想判断字符串数组里面有没有重复项,Java中该怎么写?

A

利用Set集合判断字符串数组重复元素

同样可以使用HashSet集合,遍历字符串数组,将元素添加到Set中,如果添加失败,则说明存在重复字符串。示例代码:

public boolean hasDuplicateString(String[] arr) {
    Set<String> set = new HashSet<>();
    for (String s : arr) {
        if (!set.add(s)) {
            return true; // 有重复字符串
        }
    }
    return false; // 无重复字符串
}