Java 数组合并去重

在Java中,数组是一种常用的数据结构,它可以存储多个相同类型的元素。有时候我们需要将两个数组合并,并去除重复的元素,这在处理数据的时候非常常见。本文将介绍如何使用Java实现数组的合并和去重操作。

数组的合并

要合并两个数组,可以使用Java中的System.arraycopy()方法或者使用循环来逐个复制元素。

使用System.arraycopy()方法

System.arraycopy()方法是Java提供的一个用于数组复制的工具方法,它可以将一个数组的内容复制到另一个数组中。

下面是一个示例代码,演示如何使用System.arraycopy()方法合并两个数组:

int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};

int length1 = array1.length;
int length2 = array2.length;

int[] result = new int[length1 + length2];

System.arraycopy(array1, 0, result, 0, length1);
System.arraycopy(array2, 0, result, length1, length2);

在上面的代码中,我们创建了两个数组array1array2,然后计算出合并后数组的长度,创建一个新数组result来存储合并后的结果。接着使用System.arraycopy()方法将两个数组的内容分别复制到result数组中。

使用循环逐个复制

除了使用System.arraycopy()方法外,我们还可以使用循环来逐个复制数组中的元素。

下面是一个示例代码,演示如何使用循环合并两个数组:

int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};

int length1 = array1.length;
int length2 = array2.length;

int[] result = new int[length1 + length2];

for (int i = 0; i < length1; i++) {
    result[i] = array1[i];
}

for (int i = 0; i < length2; i++) {
    result[length1 + i] = array2[i];
}

在上面的代码中,我们同样创建了两个数组array1array2,然后计算出合并后数组的长度,创建一个新数组result来存储合并后的结果。接着使用两个循环分别将两个数组的元素逐个复制到result数组中。

数组的去重

要去除数组中的重复元素,可以使用Java中的HashSet或者使用循环遍历的方法。

使用HashSet

HashSet是Java提供的一个基于哈希表实现的集合类,它可以用于存储不重复的元素。我们可以使用HashSet来去除数组中的重复元素。

下面是一个示例代码,演示如何使用HashSet去重数组的元素:

int[] array = {1, 2, 2, 3, 3, 4, 5, 5};

HashSet<Integer> set = new HashSet<>();

for (int i = 0; i < array.length; i++) {
    set.add(array[i]);
}

int[] result = new int[set.size()];
int index = 0;

for (int num : set) {
    result[index++] = num;
}

在上面的代码中,我们创建了一个数组array,其中包含了重复的元素。然后创建一个HashSet集合set,遍历数组并将元素加入到集合中。由于HashSet只存储不重复的元素,所以重复的元素只会保留一个。接着,我们创建一个新数组result来存储去重后的结果,将集合中的元素逐个复制到新数组中。

使用循环遍历

除了使用HashSet外,我们还可以使用循环遍历的方法去重数组的元素。

下面是一个示例代码,演示如何使用循环遍历去重数组的元素:

int[] array = {1, 2, 2, 3, 3, 4, 5, 5};

int length = array.length;
int count = 0;

for (int i = 0; i < length; i++) {