Я пытаюсь найти Союз двух массивов, созданных пользователем. Я получаю:Поиск объединения двух массивов
Исключение в потоке "основной" 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;
}
}
Можете ли вы на самом деле использовать реализацию Set? –