我有一个程序可以对两个数组的公共(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]);
}
}
}
}
}
最佳答案
可以有不同的实现方式。您可以使用以下方法。这是伪代码
- 使用二维数组来存储数组。如果数组的数量为 n 且大小为 m,则数组将为
input[n][m]
- 使用
ArrayList
commonItems
来存储常用项。使用input[0]
的元素启动它
- 现在遍历
i = 1 到 n-1
的数组。与每一个input[i]
比较,每一步只存储commonItems
和input[i]
的共同项。您可以通过将input[i]
转换为列表并使用retainAll
方法来实现。 - 在迭代结束时,
commonItem
列表将只包含公共(public)数字。现在对这个列表的值求和。
关于java - 在java中查找n个数组之间的公共(public)元素之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43327140/