Java数组求交集

在Java编程中,我们经常会遇到需要求取两个数组的交集的需求。交集是指两个数组中共同拥有的元素。本文将介绍如何用Java语言来实现数组的交集操作,并附上相应的代码示例。

数组的交集操作

数组是一种用于存储多个相同类型元素的数据结构。在Java中,数组可以通过索引访问和修改其中的元素。求取两个数组的交集,需要遍历其中一个数组,并检查另一个数组中是否存在相同的元素。如果存在相同的元素,则将其添加到一个新的数组中。

代码示例

下面是一个示例代码,用于求取两个整数数组的交集:

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ArrayIntersection {
    public static void main(String[] args) {
        int[] nums1 = {1, 2, 2, 1};
        int[] nums2 = {2, 2};

        int[] intersection = findIntersection(nums1, nums2);

        System.out.print("Intersection: ");
        for (int num : intersection) {
            System.out.print(num + " ");
        }
    }

    public static int[] findIntersection(int[] nums1, int[] nums2) {
        Set<Integer> set1 = new HashSet<>();
        Set<Integer> set2 = new HashSet<>();

        for (int num : nums1) {
            set1.add(num);
        }

        for (int num : nums2) {
            if (set1.contains(num)) {
                set2.add(num);
            }
        }

        int[] intersection = new int[set2.size()];
        int index = 0;

        for (int num : set2) {
            intersection[index++] = num;
        }

        return intersection;
    }
}

在上面的代码中,我们首先创建了两个HashSet集合set1set2,用于存储两个数组中的元素。然后,我们遍历第一个数组nums1,将其中的元素添加到set1中。接下来,我们遍历第二个数组nums2,如果set1中存在相同的元素,则将其添加到set2中。最后,我们将set2中的元素转换为一个整型数组,并返回该数组作为交集的结果。

流程图

下面是该算法的流程图:

flowchart TD;
    start[开始] --> input1[输入第一个数组nums1]
    input1 --> input2[输入第二个数组nums2]
    input2 --> createSet1[创建HashSet集合set1]
    createSet1 --> traverse1[遍历nums1]
    traverse1 --> addSet1[将nums1中的元素添加到set1]
    addSet1 --> createSet2[创建HashSet集合set2]
    createSet2 --> traverse2[遍历nums2]
    traverse2 --> checkIntersection[检查nums2中的元素是否存在于set1中]
    checkIntersection --> addSet2[如果存在,则将其添加到set2中]
    addSet2 --> convertArray[将set2中的元素转换为整型数组intersection]
    convertArray --> output[输出intersection作为交集的结果]
    output --> end[结束]

关系图

下面是两个数组的交集的关系图:

erDiagram
    ARRAY1 }--|{ ARRAY2 : 交集

在上面的关系图中,ARRAY1和ARRAY2表示两个数组,{}代表交集。交集是两个数组共同拥有的元素的集合。

总结

本文介绍了如何用Java语言实现数组的交集操作。通过遍历两个数组,并使用HashSet集合来存储数组的元素,我们可以有效地求取两个数组的交集。希望本文能够对您理解和应用数组的交集操作有所帮助。