gpt4 book ai didi

java - 查找两个数组的并集

转载 作者:行者123 更新时间:2023-12-01 18:15:28 25 4
gpt4 key购买 nike

我正在尝试查找由用户输入创建的两个数组的并集。我不断得到:

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 4 在 TwoSets.main(TwoSets.java:47)

import java.util.Scanner;

public class TwoSets
{

public static void main(String[] args)
{

int i, array, choice;
Scanner input = new Scanner(System.in);

System.out.print("How many numbers do you want in each set? ");
array = input.nextInt();

int set1[] = new int[array];
int set2[] = new int[array];
int set3[] = new int[array*2];

for(i=0;i<set1.length;i++)
{
System.out.print("Enter a number from the first set: ");
set1[i] = input.nextInt();
}

System.out.print("\n");

for(i=0;i<set2.length;i++)
{
System.out.print("Enter a number from the second set: ");
set2[i] = input.nextInt();
}

System.out.print("Enter 1 to find Union\n" + "Enter 2 to find Intersection\n" + "Enter 3 to find Difference\n");
choice = input.nextInt();

上面的代码正在初始化并获取用户输入,工作正常。下面的代码不起作用。

    if(choice == 1)
{
for(i=0;i<array;i++)
{
set3[i] = set1[i];
}

for(i=array;i<array*2;i++)
{
boolean check = Union(set2[i], set3);
if(check == false)
{
set3[i] = set2[i];
}
}
for(i=0;i<set3.length;i++)
{
System.out.print(set3[i]);
}
}
}

public static boolean Union(int number, int[] array)
{
for (int i : array )
{
if (i == number)
{
return true;
}
}
return false;
}
}

最佳答案

set2 具有数组长度,但在:

for(i=array;i<array*2;i++)
{
boolean check = Union(set2[i], set3);
if(check == false)
{
set3[i] = set2[i];
}
}

您在循环中使用 array*2 。我认为这是一个错误。

关于java - 查找两个数组的并集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859818/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com