如何获得两个数组之间的交集

学习使用HashSet在Java中查找两个数组之间交集。相交是属于两个不同集合的一组公共项目

路口
路口

要获取两个数组的交集,请按照下列步骤操作:

  1. 在HashSet实例中推送第一个数组。
  2. 使用retainAll()方法仅保留第二个数组中存在的元素。

1.两个整数数组之间的交集

Java程序获取两个整数数组之间的交集并打印输出。

import java.util.Arrays;
import java.util.HashSet;

public class Main 
{
  public static void main(String[] args) 
  {
    Integer[] firstArray = {0,1,2,3,4,5,6,7,8,9};
    Integer[] secondArray = {1,3,5,7,9};
    
    HashSet<Integer> set = new HashSet<>(); 
    
    set.addAll(Arrays.asList(firstArray));
    
    set.retainAll(Arrays.asList(secondArray));
    
    System.out.println(set);
    
    //convert to array
    Integer[] intersection = {};
    intersection = set.toArray(intersection);
    
    System.out.println(Arrays.toString(intersection));
  }
}

程序输出。

[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9]

2.两个字符串数组之间的交集

Java程序获取两个字符串数组之间的交集并打印输出。

import java.util.Arrays;
import java.util.HashSet;

public class Main 
{
  public static void main(String[] args) 
  {
    String[] firstArray = {"A", "B", "C", "D"};
    String[] secondArray = {"D", "A", "E", "F"};
    
    HashSet<String> set = new HashSet<>(); 
    
    set.addAll(Arrays.asList(firstArray));
    
    set.retainAll(Arrays.asList(secondArray));
    
    System.out.println(set);
    
    //convert to array
    String[] intersection = {};
    intersection = set.toArray(intersection);
    
    System.out.println(Arrays.toString(intersection));
  }
}

程序输出。

[A, D]
[A, D]

saigon has written 1445 articles

Leave a Reply