Java数组交集的实现

作为一名经验丰富的开发者,我将教会你如何实现"java 数组交集 ArrayUtil"。首先,让我们来了解一下整个流程。

流程图

flowchart TD
    A[开始] --> B[输入数组1和数组2]
    B --> C[使用HashSet存储数组1中的元素]
    C --> D[创建一个ArrayList存储交集元素]
    D --> E[遍历数组2,判断元素是否在HashSet中]
    E --> F[将交集元素添加到ArrayList中]
    F --> G[将ArrayList转换为数组]
    G --> H[返回交集数组]
    H --> I[结束]

步骤和代码示例

  1. 输入数组1和数组2。
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {4, 5, 6, 7, 8};
  1. 使用HashSet存储数组1中的元素。
Set<Integer> set = new HashSet<>();
for (int num : array1) {
    set.add(num);
}
  1. 创建一个ArrayList存储交集元素。
List<Integer> intersection = new ArrayList<>();
  1. 遍历数组2,判断元素是否在HashSet中。
for (int num : array2) {
    if (set.contains(num)) {
        intersection.add(num);
    }
}
  1. 将交集元素添加到ArrayList中。

  2. 将ArrayList转换为数组。

int[] result = new int[intersection.size()];
for (int i = 0; i < intersection.size(); i++) {
    result[i] = intersection.get(i);
}
  1. 返回交集数组。
return result;

下面是完整的代码示例:

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

public class ArrayUtil {
    public static int[] getIntersection(int[] array1, int[] array2) {
        Set<Integer> set = new HashSet<>();
        for (int num : array1) {
            set.add(num);
        }
        
        List<Integer> intersection = new ArrayList<>();
        for (int num : array2) {
            if (set.contains(num)) {
                intersection.add(num);
            }
        }
        
        int[] result = new int[intersection.size()];
        for (int i = 0; i < intersection.size(); i++) {
            result[i] = intersection.get(i);
        }
        
        return result;
    }
}

通过以上代码,我们可以实现一个能够计算两个整型数组交集的ArrayUtil工具类。可以通过调用getIntersection方法,传入两个数组参数来获取它们的交集。

希望这篇文章能够帮助你理解如何实现"java 数组交集 ArrayUtil"。如果有任何问题,请随时向我提问。