我正在尝试编写一个名为union()的方法,它将返回一个int数组,并且需要两个int数组参数,检查它们是否是集合,换句话说,它们之间是否有重复项。我已经写了另一个方法isSet(),它需要一个数组参数并检查该数组是否是一个集合。问题是,我想在union方法中检查这两个数组是否有重复项,如果有,我想提取其中一个重复项并将其放入unionArray[] int数组中。这是我目前尝试过的。
public int[] union(int[] array1, int[] array2){
int count = 0;
if (isSet(array1) && isSet(array2)){
for (int i = 0; i < array1.length; i++){
for (int j = 0; j < array2.length; j++){
if (array1[i] == array2[j]){
System.out.println(array2[j]);
count ++;
}
}
}
}
int[] array3 = new int[array2.length - count];
int[] unionArray = new int[array1.length + array3.length];
int elementOfUnion = 0;
for (int i = 0; i< array1.length; i++){
unionArray[i] = array1[i];
elementOfUnion = i + 1 ;
}
int index = 0;
for (int i = elementOfUnion; i < unionArray.length; i++){
unionArray[i] = array3[index];
index++;
}
return unionArray;
}
public boolean isSet(int[] array){
boolean duplicates = true;
for (int i = 0; i < array.length; i++){
for(int n = i+1; n < array.length; n++){
if (array[i] == array[n])
duplicates = false;
}
}
return duplicates;
}
我想做的是将array1的所有元素用于unionArray中,检查array2是否有与array1重复的元素,然后将array2中所有非重复元素移动到一个新的数组array3中,并将array3连接到unionArray中。