Java求两个数组的交集和并集

在Java中,我们经常需要对数组进行一些操作,比如求两个数组的交集和并集。本文将介绍如何使用Java编写代码来实现这些操作。

交集

交集是指两个数组中共同拥有的元素集合。我们可以通过遍历一个数组,检查另一个数组中是否包含相同的元素来求解交集。

以下是使用Java代码求解两个数组交集的示例:

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

public class ArrayIntersection {
    public static int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set1 = new HashSet<>();
        for (int num : nums1) {
            set1.add(num);
        }

        Set<Integer> set2 = new HashSet<>();
        for (int num : nums2) {
            if (set1.contains(num)) {
                set2.add(num);
            }
        }

        int[] result = new int[set2.size()];
        int i = 0;
        for (int num : set2) {
            result[i++] = num;
        }

        return result;
    }

    public static void main(String[] args) {
        int[] nums1 = {1, 2, 2, 1};
        int[] nums2 = {2, 2};
        int[] intersection = intersection(nums1, nums2);
        for (int num : intersection) {
            System.out.print(num + " ");
        }
    }
}

上述代码中,我们使用了HashSet来存储数组中的元素,利用HashSet的唯一性来去除重复元素。遍历一个数组,将数组中的元素添加到set1中。然后遍历另一个数组,检查set1中是否存在相同的元素,如果存在,则将其添加到set2中。最后,将set2中的元素转换为数组并返回。

运行上述代码,输出结果为:

2

并集

并集是指两个数组中所有不重复元素的集合。我们可以使用HashSet来存储数组中的元素,利用HashSet的唯一性来去除重复元素。将两个数组中的元素分别添加到HashSet中,最后将HashSet中的元素转换为数组并返回。

以下是使用Java代码求解两个数组并集的示例:

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

public class ArrayUnion {
    public static int[] union(int[] nums1, int[] nums2) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums1) {
            set.add(num);
        }
        for (int num : nums2) {
            set.add(num);
        }

        int[] result = new int[set.size()];
        int i = 0;
        for (int num : set) {
            result[i++] = num;
        }

        return result;
    }

    public static void main(String[] args) {
        int[] nums1 = {1, 2, 2, 1};
        int[] nums2 = {2, 2};
        int[] union = union(nums1, nums2);
        for (int num : union) {
            System.out.print(num + " ");
        }
    }
}

上述代码中,我们使用了HashSet来存储数组中的元素,利用HashSet的唯一性来去除重复元素。首先遍历一个数组,将数组中的元素添加到set中。然后遍历另一个数组,将数组中的元素添加到set中。最后,将set中的元素转换为数组并返回。

运行上述代码,输出结果为:

1 2

通过以上示例,我们学会了如何使用Java编写代码来求解两个数组的交集和并集。这些操作在实际编程中非常常见,可以帮助我们更好地处理数组相关的问题。