数组合并去重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
该方法接受两个待合并的整形数组arr1
和arr2
,并返回一个新的数组merged
,其中len1
和len2
两个数组的长度分别表示。通过System.arraycopy
方法将arr1
和arr2
复制元素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
