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

Java函数实现将数组中的重复元素清除

发布时间:2023-11-27 01:29:58

在Java中实现将数组中的重复元素清除的方法有很多种。下面我将介绍三种常用的方法。

方法一:使用Set

可以使用Java中的Set来实现去除数组中的重复元素,Set集合具有元素不重复的特点。

import java.util.HashSet;

public class RemoveDuplicates {
    public static int[] removeDuplicates(int[] arr){
        // 使用HashSet去除重复元素
        HashSet<Integer> set = new HashSet<>();
        for(int num: arr){
            set.add(num);
        }
        // 将去重后的元素存入新数组
        int[] result = new int[set.size()];
        int index = 0;
        for(int num: set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 3, 4, 4, 5};
        int[] result = removeDuplicates(arr);
        // 打印去重后的数组
        for(int num: result){
            System.out.print(num + " ");
        }
    }
}

运行结果:

1 2 3 4 5

方法二:使用相邻元素比较

可以通过比较当前元素与相邻元素是否相等来判断是否为重复元素,然后将不重复的元素存入新数组。

public class RemoveDuplicates {
    public static int[] removeDuplicates(int[] arr){
        // 统计不重复元素的个数
        int count = 1;
        for(int i = 1; i < arr.length; i++){
            // 如果当前元素与相邻元素不相等,则计数加一
            if(arr[i] != arr[i-1]){
                count++;
            }
        }
        // 将不重复的元素存入新数组
        int[] result = new int[count];
        result[0] = arr[0];
        int index = 1;
        for(int i = 1; i < arr.length; i++){
            if(arr[i] != arr[i-1]){
                result[index++] = arr[i];
            }
        }
        return result;
    }
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 3, 4, 4, 5};
        int[] result = removeDuplicates(arr);
        // 打印去重后的数组
        for(int num: result){
            System.out.print(num + " ");
        }
    }
}

运行结果:

1 2 3 4 5

方法三:使用Arrays类的stream方法

可以使用Java的Arrays类的stream方法结合distinct方法来实现去除数组中的重复元素。

import java.util.Arrays;

public class RemoveDuplicates {
    public static int[] removeDuplicates(int[] arr){
        // 使用stream方法去除重复元素
        int[] result = Arrays.stream(arr).distinct().toArray();
        return result;
    }
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 3, 4, 4, 5};
        int[] result = removeDuplicates(arr);
        // 打印去重后的数组
        for(int num: result){
            System.out.print(num + " ");
        }
    }
}

运行结果:

1 2 3 4 5

这三种方法都可以实现将数组中的重复元素清除,根据实际情况选择合适的方法即可。