当前位置: 首页 > 图灵资讯 > 技术篇> 数组合并去重java

数组合并去重java

来源:图灵教育
时间:2023-08-31 17:15:22

数组合并去重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