Я реализовал метод для нахождения разницы между двумя несортированными массивами. В настоящее время я добился получения различий без дубликатов. Но как заставить это учитывать дубликаты?
Например, для приведенных ниже входных массивов я ожидаю вывод [4 5 3]
:
int[] arr1 = {1, 2, 3, 4, 5, 5};
int[] arr2 = {1, 2, 3, 5, 3};
Для этих входных массивов я ожидаю [7 7 9]
int[] arr3 = {7, 7, 4, 9, 6};
int[] arr4 = {4, 6};
//
static ArrayList<Integer> findDifference(int[] a, int[] b) {
ArrayList<Integer> arr1 = new ArrayList<Integer>() {
{ for (int i : a) add(i); }
};
ArrayList<Integer> arr2 = new ArrayList<Integer>() {
{ for (int i : b) add(i); }
};
if (arr1.size() > arr2.size()) {
arr1.removeAll(arr2);
return arr1;
} else {
arr2.removeAll(arr1);
return arr2;
}
}