题目描述
分别输出两个数组的交集和并集
eg:
输入:
[1,2,5,6,7]
[2,5,7,9]
输出:
[2,5,7]
[1,2,5,6,7,9]
以下是本篇文章正文内容,下面案例可供参考
解题思路
交集:分别比较每一位是否相等,若相等,存放到list当中,再输出
并集:将数组放到list中,再使用set去重
代码如下
import java.util.*;
public class Main {
/**
* 两个数组,分别输出它的交集和并集
*/
public static void main(String[] args) {
int[] arr1 = {1,5,2,4,8,7};
int[] arr2 = {7,5,3,8,0};
System.out.println(func1(arr1, arr2));
System.out.println(func2(arr1, arr2));
}
//交集
private static List<Integer> func1(int[] arr1, int[] arr2) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < arr1.length; i++) {
for (int j = 0; j < arr2.length; j++) {
if(arr1[i] == arr2[j]){
list.add(arr1[i]);
}
}
}
return list;
}
//并集
private static HashSet<Integer> func2(int[] arr1, int[] arr2) {
List<Integer> list = new ArrayList<Integer>();
for (int i = 0; i < arr1.length; i++) {
list.add(arr1[i]);
}
for (int j = 0; j < arr2.length; j++) {
list.add(arr2[j]);
}
HashSet<Integer> set = new HashSet<>();
set.addAll(list);
return set;
}
}