java - 在两个数组中查找重复数字
问题描述
我被要求制作一个可以在两个数组中找到重复数字的程序。我已经想出了如何打印出重复的数字,但是我在让它们打印出只有一个重复的数字时遇到了问题。IE;
int[] array1 = new int[2,4,6,8,10,12,14,16,18,20]
int[] array1 = new int[2,4,6,8,10,10,6,7,20,20]
输出:
2, 4, 6, 8, 10, 10, 6, 20, 20
我怎样才能让它只输出一个20
和一个10
?
import java.security.SecureRandom;
public class Duplicates
{
public static void main(String []args)
{
int[] array1 = new int[10];
int[] array2 = new int[10];
SecureRandom randomNumbers = new SecureRandom();
for(int i = 0; i < array1.length; i++)
{
array1[i] = randomNumbers.nextInt(19);
}
for(int i = 0; i < array2.length; i++)
{
array2[i] = randomNumbers.nextInt(19);
}
System.out.printf("Array 1: ");
for(int i: array1)
{
System.out.print(i + ",");
}
System.out.println();
System.out.printf("Array 2: ");
for(int i: array2)
{
System.out.print(i + ",");
}
System.out.println("\nValues the exist in both arrays are... ");
for(int i = 0; i < array1.length;i++)
{
for(int j = 0; j < array2.length; j++)
{
if(array1[i]==array2[j])
{
System.out.printf(array1[i] + ",");
}
}
}
}
}
解决方案
您需要一种记录哪些数字已被识别为重复的方法。
我建议:创建一个新集合,例如 HashSet,并向其中添加重复值而不是打印它们。浏览完原始数组中的所有值后,打印副本集合中的任何内容。
推荐阅读
- sql - Access/SQL:如何检查表中所有重复项(同一日期)的值是否为 0,除了一个?
- javascript - 如何在 MongoDB/Mongoose 文档数组中找到重复次数最多的值?
- android - FLAG_WINDOW_IS_OBSCURED 不适用于较新的 android
- reactjs - 尝试在 React JS 获取 JSX 表达式的函数中添加循环必须有一个父元素
- javascript - 类型 'Query' 不可分配给类型 '[(options?: QueryLazyOptions
在 codegen 的帮助下,我生成了自定义的 graphql 钩子和类型。
query loadUsers($where: UserFilter) { users(where: $where) { nodes { id email f
- azure - 如何为用户关闭 Azure 服务通知?
- javascript - 并行运行for循环
- python - 确定一个数字的词性
- identityserver4 - 身份服务器 /connect/token 给出空 500 错误 - 我如何找到错误消息?
- kubernetes - AWS EKS 服务账户集群角色绑定无法正常访问禁止访问