数组合并去重的Java实现

引言

在Java编程中,我们经常需要处理数组的合并和去重操作。数组合并是指将两个或多个数组合并为一个新的数组。而数组去重是指删除数组中重复的元素,只保留一个。本文将介绍如何使用Java语言来实现数组的合并和去重操作,并提供相应的代码示例。

数组合并

在Java中,可以通过创建一个新的数组,将待合并的数组逐个拷贝到新数组中来实现数组的合并。下面是一个示例代码:

public class ArrayMerge {
    
    public static int[] mergeArrays(int[] arr1, int[] arr2) {
        int len1 = arr1.length;
        int len2 = arr2.length;
        int[] merged = new int[len1 + len2];
        
        System.arraycopy(arr1, 0, merged, 0, len1);
        System.arraycopy(arr2, 0, merged, len1, len2);
        
        return merged;
    }
    
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3};
        int[] arr2 = {4, 5, 6};
        
        int[] merged = mergeArrays(arr1, arr2);
        
        System.out.println(Arrays.toString(merged));
    }
}

上述代码中,mergeArrays方法接受两个待合并的整型数组arr1arr2,并返回一个新的数组merged,其中len1len2分别表示两个数组的长度。通过System.arraycopy方法将arr1arr2的元素拷贝到merged数组中,然后返回merged数组。

运行上述代码,输出结果为[1, 2, 3, 4, 5, 6],表示数组合并成功。

数组去重

数组去重可以使用集合类来实现,因为集合类中的元素是唯一的。我们可以将待去重的数组转换为一个集合,然后再将集合转换回数组。下面是一个示例代码:

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

public class ArrayDistinct {
    
    public static int[] distinctArray(int[] arr) {
        Set<Integer> set = new HashSet<>();
        
        for (int num : arr) {
            set.add(num);
        }
        
        int[] distinct = new int[set.size()];
        int i = 0;
        for (int num : set) {
            distinct[i++] = num;
        }
        
        return distinct;
    }
    
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 2, 4, 5, 6, 5};
        
        int[] distinct = distinctArray(arr);
        
        System.out.println(Arrays.toString(distinct));
    }
}

上述代码中,distinctArray方法接受一个整型数组arr,通过创建一个HashSet集合,遍历arr数组并将元素添加到集合中,实现数组去重。然后创建一个新的数组distinct,长度为集合的大小,再遍历集合将元素逐个添加到distinct数组中。最后返回distinct数组。

运行上述代码,输出结果为[1, 2, 3, 4, 5, 6],表示数组去重成功。

数组合并去重

要实现数组的合并和去重操作,可以先将两个数组合并为一个新数组,然后对新数组进行去重。下面是一个示例代码:

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

public class ArrayMergeDistinct {
    
    public static int[] mergeDistinctArrays(int[] arr1, int[] arr2) {
        int len1 = arr1.length;
        int len2 = arr2.length;
        int[] merged = new int[len1 + len2];
        
        System.arraycopy(arr1, 0, merged, 0, len1);
        System.arraycopy(arr2, 0, merged, len1, len2);
        
        Set<Integer> set = new HashSet<>();
        for (int num : merged) {
            set.add(num);
        }
        
        int[] distinct = new int[set.size()];
        int i = 0;
        for (int num : set) {
            distinct[i++] = num;
        }
        
        return distinct;
    }
    
    public static void main(String[] args) {
        int[] arr1 = {1, 2, 3};
        int[] arr