欢迎访问宙启技术站
智能推送

如何使用Java函数确定一个数组是否有重复值?

发布时间:2023-08-15 19:50:35

要确定一个数组是否有重复值,你可以使用以下方法:

1. 方法一:使用两个嵌套的for循环。外层循环遍历数组的每个元素,内层循环则与外层元素进行比较。如果找到相同的元素,则说明数组有重复值。这种方法的时间复杂度为O(n^2),其中n为数组的长度。

public static boolean containsDuplicate(int[] nums) {
    for (int i = 0; i < nums.length - 1; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[i] == nums[j]) {
                return true;
            }
        }
    }
    return false;
}

2. 方法二:使用HashSet。利用HashSet的特性,即不允许有重复元素,我们可以遍历数组的元素,将其逐个加入HashSet中。如果添加元素时发现HashSet已经包含该元素,即说明数组有重复值。这种方法的时间复杂度为O(n),其中n为数组的长度。

import java.util.HashSet;
import java.util.Set;

public static boolean containsDuplicate(int[] nums) {
    Set<Integer> set = new HashSet<>();

    for (int num : nums) {
        if (set.contains(num)) {
            return true;
        }
        set.add(num);
    }
    
    return false;
}

这两种方法都可以有效地确定一个数组是否有重复值。你可以根据具体情况选择使用哪种方法。