📜  java 数组检查重复项 - Java (1)

📅  最后修改于: 2023-12-03 15:01:33.922000             🧑  作者: Mango

Java 数组检查重复项

在Java中,数组是一个容器,可以存储多个相同类型的元素。有时候我们需要检查一个数组中是否有重复的元素。

本文将介绍几种不同的方法来检查Java数组中的重复项。

方法一:使用循环遍历

首先,我们可以使用循环遍历数组中的每个元素,并将每个元素与后面的所有元素进行比较,如果找到一个重复的元素,则返回true。

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

使用示例:

int[] arr = {1, 2, 3, 4, 5};
System.out.println(hasDuplicates(arr)); // false

int[] arr2 = {1, 2, 3, 4, 5, 2};
System.out.println(hasDuplicates(arr2)); // true
方法二:使用Set

我们也可以使用Set来检查Java数组中是否有重复项。将数组中的所有元素添加到Set中,如果元素已经存在,则说明该数组中有重复的元素。

public static boolean hasDuplicates(int[] arr) {
    Set<Integer> set = new HashSet<>();
    for (int i = 0; i < arr.length; i++) {
        if (set.contains(arr[i])) {
            return true;
        } else {
            set.add(arr[i]);
        }
    }
    return false;
}

使用示例:

int[] arr = {1, 2, 3, 4, 5};
System.out.println(hasDuplicates(arr)); // false

int[] arr2 = {1, 2, 3, 4, 5, 2};
System.out.println(hasDuplicates(arr2)); // true
方法三:使用StreamAPI

Java 8及更高版本中的StreamAPI可以更轻松地检查数组中是否有重复项。我们可以使用distinct()方法来去除重复项,并检查删除之后的元素个数是否与原数组相同。

public static boolean hasDuplicates(int[] arr) {
    return arr.length != Arrays.stream(arr).distinct().count();
}

使用示例:

int[] arr = {1, 2, 3, 4, 5};
System.out.println(hasDuplicates(arr)); // false

int[] arr2 = {1, 2, 3, 4, 5, 2};
System.out.println(hasDuplicates(arr2)); // true
结论

以上是三种常见的检查Java数组中是否有重复项的方法。使用循环遍历的方法适用于所有版本的Java,使用Set和StreamAPI的方法则需要Java 8及以上版本的支持。具体选择哪种方法可以根据具体应用场景来决定。