java数组怎么去掉重复的

有三种方法去除 Java 数组中重复元素:1)使用 Set 存储唯一元素并将其转换为数组;2)对数组进行排序并使用双指针跳过重复元素;3)使用 HashMap 记录元素出现次数并保留仅出现一次的元素。

如何去除 Java 数组中的重复元素

方法 1:使用 Set

Set 是一个不允许重复元素的集合。我们可以使用 HashSet 来去除数组中的重复元素:

public int[] removeDuplicates(int[] arr) {
    Set set = new HashSet<>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];
    int index = 0;
    for (int num : set) {
        result[index++] = num;
    }
    return result;
}

方法 2:使用排序和双指针

对数组进行排序后,重复元素会相邻。我们可以使用双指针来遍历数组,跳过重复元素:

public int[] removeDuplicates(int[] arr) {
    if (arr.length == 0) {
        return arr;
    }
    Arrays.sort(arr);
    int i = 0, j = 1;
    while (j < arr.length) {
        if (ar

r[i] != arr[j]) { arr[++i] = arr[j]; } j++; } return Arrays.copyOf(arr, i + 1); }

方法 3:使用 HashMap

HashMap 是一个键值对集合。我们可以使用 HashMap 来记录数组中每个元素出现的次数,然后只保留出现一次的元素:

public int[] removeDuplicates(int[] arr) {
    Map map = new HashMap<>();
    for (int i = 0; i < arr.length; i++) {
        if (!map.containsKey(arr[i])) {
            map.put(arr[i], 0);
        }
        map.put(arr[i], map.get(arr[i]) + 1);
    }
    int[] result = new int[map.size()];
    int index = 0;
    for (int num : map.keySet()) {
        result[index++] = num;
    }
    return result;
}