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

如何在Java中实现数组元素去重的函数?

发布时间:2023-06-10 03:04:32

在Java中,有多种实现数组元素去重的方法。下面我将介绍三种代码实现方式。

1. 使用HashSet实现

HashSet是一种无序的集合,不允许有重复元素。因此我们可以利用HashSet去重数组。具体实现代码如下:

public static int[] removeDuplicate(int[] arr) {
    HashSet<Integer> set = new HashSet<Integer>();
    for (int i = 0; i < arr.length; i++) {
        set.add(arr[i]);
    }
    int[] result = new int[set.size()];

    int index = 0;
    for (Integer i : set) {
        result[index++] = i;
    }
    return result;
}

2. 使用Arrays.sort()和临时数组实现

利用java的Arrays.sort()函数可以对数组进行排序,排序后,重复元素就会相邻排列。因此,我们可以使用一个临时数组来存储去重后的元素。

具体实现代码如下:

public static int[] removeDuplicate(int[] arr) {
    Arrays.sort(arr);
    int[] temp = new int[arr.length];
    int j = 0;
    for (int i = 0; i < arr.length - 1; i++) {
        if (arr[i] != arr[i + 1]) {
            temp[j++] = arr[i];
        }
    }
    temp[j++] = arr[arr.length - 1];

    int[] result = new int[j];
    for (int k = 0; k < j; k++) {
        result[k] = temp[k];
    }
    return result;
}

3. 使用双层循环实现

这是一种效率较低的实现方法,但代码较为简单易懂。

具体实现代码如下:

public static int[] removeDuplicate(int[] arr) {
    int len = arr.length;
    for (int i = 0; i < len; i++) {
        for (int j = i + 1; j < len; j++) {
            if (arr[i] == arr[j]) {
                arr[j] = arr[len - 1];
                len--;
                j--;
            }
        }
    }

    int[] result = new int[len];
    for (int i = 0; i < len; i++) {
        result[i] = arr[i];
    }
    return result;
}

以上三种方式均可实现数组元素去重的函数。在实际的开发过程中,我们可以根据实际情况选择合适的方式进行处理。