java - 在java中查找n个数组之间的公共(public)元素之和

标签 java arrays algorithm data-structures array-algorithms

我有一个程序可以对两个数组的公共(public)元素求和。为此,我使用了两个 for 循环,如果我有三个,那么我可以使用三个 for 循环。但是如何对 n 个数组的公共(public)元素求和,其中 n 在运行时出现。

我不知道如何在运行时更改循环次数,或者是否有任何其他相关概念?

这是我尝试对两个数组求和的代码:

import java.util.Scanner;

public class Sample {
    public static void main(String... args)
    {
        Scanner sc=new Scanner(System.in);
        int arr1[]={1,2,3,4,5},arr2[]={4,5,6,7,8},sum=0;
        for (int i=0;i<arr1.length;i++)
        {
            for (int j=0;j<arr2.length;j++)
            {
                if (arr1[i]==arr2[j])
                {
                    sum+=(arr1[i]);
                }
            }
        }
    }
}

最佳答案

可以有不同的实现方式。您可以使用以下方法。这是伪代码

  1. 使用二维数组来存储数组。如果数组的数量为 n 且大小为 m,则数组将为 input[n][m]
  2. 使用ArrayList commonItems 来存储常用项。使用 input[0]
  3. 的元素启动它
  4. 现在遍历 i = 1 到 n-1 的数组。与每一个input[i]比较,每一步只存储commonItemsinput[i]的共同项。您可以通过将 input[i] 转换为列表并使用 retainAll 方法来实现。
  5. 在迭代结束时,commonItem 列表将只包含公共(public)数字。现在对这个列表的值求和。

关于java - 在java中查找n个数组之间的公共(public)元素之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327140/

相关文章:

algorithm - N个整数的随机排列的在线算法

arrays - 将n组数据整理成一组

forEach 内的 Javascript 回调

javascript - TypeScript 从数字或字符串数​​组创建 Set/Array

algorithm - 给定以间隔作为边成本的图形检查 MST 有效性

java - 双代理接口(interface) : Could not generate CGLIB subclass of class 时 Spring AspectJ 失败

java - 使用 wsdl4j 从 wsdl 提取 SOAP 请求

java - 无法使用 .getResource().getPath() 打开文件

java - 如何连接到 Android 应用程序 (Java) 中的 Rails SSE 流页面?

javascript - 在不覆盖现有键值的情况下将对象的值添加到对象数组