【发布时间】:2021-03-11 05:34:29
【问题描述】:
我正在尝试编写一个方法 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;
}
我试图做的是使用unionArray中的所有array1元素,检查array2是否与array1有任何重复,然后将所有不重复的元素从array2移动到新的array3,并将array3连接到unionArray .
【问题讨论】: