当前位置: 首页 > 知识库问答 >
问题:

Java,查找两个数组的交集

戚京
2023-03-14

我已经读过一些其他的堆栈溢出线程:

在java中求两个多集的交集

我如何获得两个数组之间的交集作为一个新数组?

public static int[] intersection (int [] x, int numELementsInX, int [] y, int numElementsInY) {

我试图检查两个数组以及它们的元素数(numElementsInX和numElementsInY),并返回一个包含数组x和y的公共值的新数组。他们的交集。

Example,if x is{1,3,5,7,9}and y is{9,3,9,4} then
intersection(x, 5, y, 4} should return {3, 9} or {9, 3}

编辑代码

for (int i=0; i<numElementsInX; i++){
    for (int j=0; j<numElementsInY; j++){
        if (x[j]==x[i]) { //how to push to new array?; 
        }
        else{
        }
    }
}

共有1个答案

孙文康
2023-03-14

最简单的解决方案是使用集合,只要您不关心结果中的元素会有不同的顺序,并且重复项会被移除。输入数组array1array2是给定int[]数组integer[]子数组,对应于要处理的元素数:

Set<Integer> s1 = new HashSet<Integer>(Arrays.asList(array1));
Set<Integer> s2 = new HashSet<Integer>(Arrays.asList(array2));
s1.retainAll(s2);

Integer[] result = s1.toArray(new Integer[s1.size()]);

上面将返回一个integer[],如果需要,可以简单地将其内容复制并转换为int[]

 类似资料:
  • 允许查找两个共同祖先的提交位置。是否有一种方法可以找到再次合并两个分支的commit?

  • 问题内容: 我知道如何得到两个平面列表的交集: 但是当我必须找到嵌套列表的交集时,我的问题就开始了: 最后,我希望收到: 你们能帮我这个忙吗? 问题答案: 如果你想: 然后这是你的Python 2解决方案: 在Python 3 返回一个迭代,而不是,所以你需要用filter与呼叫list(): 说明: 过滤器部分接受每个子列表的项目,并检查它是否在源列表c1中。对c2中的每个子列表执行列表推导。

  • 我有一个问题,在java中找到两个数组之间的区别,我的例子就像假设我们有两个数组。数组和数组。我想有两个结果第一个结果是一个数组,它从数组“A”中找到丢失的对象,第二个结果是一个数组,它在数组“B”中找到添加的对象。第一个结果应类似于,第二个结果类似于。 感谢您的评论。

  • 本文向大家介绍查找两个数字的GCD,包括了查找两个数字的GCD的使用技巧和注意事项,需要的朋友参考一下 在数学中,最大公约数(GCD)是最大可能的整数,该整数将两个整数相除。条件是数字必须为非零。 我们将遵循欧几里得算法来找到两个数字的GCD。 输入输出 算法 输入:两个数字a和b。 输出: a和b的GCD。 示例 输出结果

  • 本文向大家介绍查找两个数字的LCM,包括了查找两个数字的LCM的使用技巧和注意事项,需要的朋友参考一下 在数学中,最小公倍数(LCM)是可能的最小整数,可以被两个数整除。 LCM可以通过许多方法来计算,例如因式分解等。但是在此算法中,我们将较大的数字乘以1,2,3…。直到找到一个可被第二个数字整除的数字。 输入输出 算法 输入:两个数字a和b,视为a> b。 输出:  a和b的LCM。 示例 输出

  • 问题内容: 如果我有两个数组,例如 我想以以下模式[one [0],two [0],one [1],two [1]等合并/交织数组。 什么是实现合并功能的好方法? 问题答案: 如果两个数组的 长度相同, 那么这可能是一种解决方案: 此处枚举并行的数组,并返回一对对(2元素元组)的序列,每个数组中都有一个元素。从每对创建一个2元素数组,并将结果连接起来。 如果数组的 长度 可以 不同, 则可以将较长