public class Test {
public static void main(String[] args) {
int[] arrA = new int[]{1, 2, 3, 5};
int[] arrB = new int[]{5, 3, 4, 2};
int[] ints = arrayUnion2(arrA, arrB);
System.out.println(Arrays.toString(ints));
}
/**
* 数组合并去重
*
* @param arrA
* @param arrB
* @return
*/
public static int[] arrayUnion2(int[] arrA, int[] arrB) {
if (arrA == null || arrB == null) {
return new int[0];
}
if (arrA.length == 0 || arrB.length == 0) {
return new int[0];
}
int arrLength = arrA.length + arrB.length;
int[] arr = new int[arrLength];
int index = 0;
for (int i : arrA) {
arr[index++] = i;
}
for (int i : arrB) {
arr[index++] = i;
}
int resultLength = 0;
int[] resultArr = new int[resultLength];
for (int i : arr) {
boolean flag = true;
for (int i1 : resultArr) {
if (i == i1) {
flag = false;
break;
}
}
if (flag) {
int[] a = new int[resultArr.length];
for (int i1 = 0; i1 < resultArr.length; i1++) {
a[i1] = resultArr[i1];
}
resultArr = new int[++resultLength];
for (int i1 = 0; i1 < a.length; i1++) {
resultArr[i1] = a[i1];
}
resultArr[resultLength - 1] = i;
}
}
return resultArr;
}
/**
* 数组合并去重
*
* @param arrA
* @param arrB
* @return
*/
public static int[] arrayUnion(int[] arrA, int[] arrB) {
if (arrA == null || arrB == null) {
return new int[0];
}
if (arrA.length == 0 || arrB.length == 0) {
return new int[0];
}
int[] ints = Arrays.copyOf(arrA, arrA.length + arrB.length);
System.arraycopy(arrB, 0, ints, arrA.length, arrB.length);
return Arrays.stream(ints).distinct().toArray();
}
}
[1, 2, 3, 5, 4]